* @version : HUOSDK 8.0 */ namespace huo\controller\pay; use huo\controller\common\Base; use huolib\constant\OrderConst; use huolib\constant\PaywayConst; use huolib\status\OrderStatus; use huolib\status\SettleStatus; class GamePay extends Base { /** * 平台币SDK支付 * * @param string $order_id 订单ID * * @return array */ public function GameSdkPay($order_id) { $_soc_class = SdkOrderCache::ins(); $_order_data = $_soc_class->getInfoByOrderId($order_id); if (empty($_order_data)) { $_code = OrderStatus::ORDER_NOT_EXISTS; return $this->huoError($_code, OrderStatus::getMsg($_code)); } $_order_data['payway'] = PaywayConst::PAYWAY_GAMEPAY; /* 游戏币支付剩余金额 */ $_order_data['gm_amount'] = $_order_data['real_amount']; $_order_data['real_amount'] = 0; $_soc_class->updateOrder($order_id, $_order_data); /* Modified by wuyonghong BEGIN 2018/3/26 ISSUES:5314 LTV */ /* 充值时计算LTV */ $_ltv_class = new \ltv\Ltv(); $_mem_data = (new \huo\model\member\MemberModel())->getInfoById( $_order_data['mem_id'] ); $_ltv_class->charge( $_mem_data['app_id'], $_mem_data['agent_id'], $_order_data['app_id'], $_order_data['amount'], $_order_data['update_time'], $_mem_data['create_time'] ); /* END 2018/3/26 ISSUES:5314 */ $_rs = (new Notify())->doAfterPayNotify($order_id); $_cp_status = OrderConst::CP_STATUS_SUC; if (OrderStatus::NOTIFY_FAIL == $_rs['code']) { $_cp_status = OrderConst::CP_STATUS_NOT; } else { if (SettleStatus::NO_ERROR != $_rs['code']) { return $this->huoReturn($_rs); } } $_rdata = $this->clientAjax($_order_data['payway'], $order_id, 2, 2, $_cp_status); $_code = OrderStatus::NO_ERROR; return $this->huoSuccess($_code, OrderStatus::getMsg($_code), $_rdata); } /** * 游戏客户端的标准返回 * * @param $payway * @param $order_id * @param int $status * @param int $is_native * @param int $cp_status * * @return mixed */ public function clientAjax($payway, $order_id, $status = 1, $is_native = 2, $cp_status = 2) { $_rdata['pay_type'] = $payway; $_rdata['order_id'] = $order_id; $_rdata['real_amount'] = 0; $_rdata['token'] = $order_id; $_rdata['is_native'] = $is_native; $_rdata['status'] = $status; $_rdata['cp_status'] = $cp_status; return $_rdata; } }