public function fire($job, $data) { $orderId = $data['id']; $ret = true; switch ($data['notify_type']) { case 'direct': $order = RechargeModel::find($orderId); break; case 'consume': $order = ConsumeModel::find($orderId); break; case 'refund': $order = RefundModel::find($orderId); break; case 'trans': $order = TransModel::find($orderId); break; } if ($order && $order->callback_status != 2 && $order->callback_count < 20) { try { $ret = BusiNotifyBiz::getInstance()->notifyCallback($order, $data['notify_type']); } catch (PayException $e) { $ret = true; } catch (\Exception $e) { $ret = false; } $job->release(pow($order->callback_count, 2) * 60); } if ($ret == true) { $job->delete(); } }
private function _rechargeNotify($notice) { $errCode = 0; $errMsg = ''; do { $rechargeOrder = RechargeModel::where('mer_recharge_no', $notice['mer_recharge_no'])->first(); if (!$rechargeOrder) { $errCode = 2; $errMsg = '充值订单不存在' . $notice['mer_recharge_no']; break; } $rechargeId = $rechargeOrder['id']; $consumeId = $rechargeOrder['consume_id']; if ($consumeId) { $consumeOrder = ConsumeModel::find($consumeId); } $amount = false; if (isset($notice['amount'])) { $amount = $notice['amount']; } /// 需要更新的其他信息 $moreInfo = ['ser_recharge_no' => $notice['ser_recharge_no'], 'gateway_account' => $notice['gateway_account'], 'seller_partner' => $notice['seller_partner'], 'mer_recharge_no' => $notice['mer_recharge_no'], 'pay_time' => $notice['pay_time'], 'notify_log' => $notice['notify_log']]; try { if ($rechargeOrder['status'] != RechargeModel::STATUS_SUCCESS) { $res = RechargeBiz::getInstance()->confirmRechargeOrderById($rechargeId, $amount, $moreInfo); if (false === $res && empty($consumeOrder)) { $errCode = 3; $errMsg = '确认充值订单失败'; break; } } if (!empty($consumeOrder) && $consumeOrder['status'] != ConsumeModel::STATUS_SUCCESS) { $res = ConsumeBiz::getInstance()->confirmConsumeOrderById($consumeOrder['id']); if (false === $res) { $errCode = 3; $errMsg = '确认消费订单失败'; break; } } } catch (\Exception $e) { $errCode = 99; $errMsg = $e->getMessage(); break; } } while (0); $ret = new \stdClass(); $ret->is_success = $errCode === 0 ? 'T' : 'F'; $ret->code = $errCode; $ret->output = $notice['output']; $ret->error = $errMsg; return $ret; }
public function payReturn($fields) { $ret = new \stdClass(); $rechargeOrder = RechargeModel::getRechargeOrderByMerNo($fields['mer_recharge_no']); if (!$rechargeOrder) { $ret->is_success = 'F'; $ret->code = 2; $ret->error = '充值订单不存在'; return $ret; } $consumeId = $rechargeOrder['consume_id']; $params = new \stdClass(); /// 消费 if ($consumeId) { $consumeOrder = ConsumeModel::find($consumeId); $returnUrl = $consumeOrder['return_url'] ? $consumeOrder['return_url'] : $rechargeOrder['return_url']; $params->is_success = $consumeOrder['status'] == ConsumeModel::STATUS_SUCCESS ? 'T' : 'F'; $params->busi_consume_no = $consumeOrder['busi_consume_no']; $params->pay_consume_id = $consumeOrder['id']; $params->recharge_amount = $consumeOrder['recharge_amount']; $params->consume_amount = $consumeOrder['consume_amount']; $params->channel = $consumeOrder['channel']; $params->user_id = $consumeOrder['user_id']; /// 充值 } else { $returnUrl = $rechargeOrder['return_url']; $params->is_success = $rechargeOrder['status'] == RechargeModel::STATUS_SUCCESS ? 'T' : 'F'; $params->error = $rechargeOrder['status'] == RechargeModel::STATUS_SUCCESS ? '' : '充值未成功:' . $rechargeOrder['status']; $params->pay_recharge_id = $rechargeOrder['id']; $params->mer_recharge_no = $rechargeOrder['mer_recharge_no']; $params->busi_recharge_no = $rechargeOrder['busi_recharge_no']; $params->channel = $rechargeOrder['channel']; $params->user_id = $rechargeOrder['user_id']; $params->recharge_amount = $rechargeOrder['recharge_amount']; } $ret->is_success = 'T'; $ret->return_url = $returnUrl; $ret->data = $params; return $ret; }
public function getConsumeOrderById($consumeId) { return ConsumeModel::find($consumeId); }