$data['user_id'], 'token' => $data['channel_token'], ]; $res = getHttpPost('https://sdk-api.youxiyou.cn/login_notify/login_verify', $param); $res = json_decode($res, true); if ($res['code'] == 200) { return $data['user_id']; } else { return false; } } // ## 登陆 - 登陆 public function checkLogin($data, $polyChannelGame = []) { return true; } // ## 下单 - 客户端需要的参数 public function getOrder($data) { return ['code' => 200, 'msg' => 'success', 'param' => []]; } // ## 回调 - 效验 public function paySign($data, $polyChannelGame = []) { $handleKeys = ['game_order', 'out_trade_no', 'pay_extra', 'pay_status', 'price', 'user_id', 'sign']; if (array_diff($handleKeys, array_keys($data))) { return false; } $param = [ 'game_order' => $data['game_order'], // sdk下单时,游戏方透传信息(CP订单号) 'out_trade_no' => $data['out_trade_no'], // 平台方订单 'pay_extra' => $data['pay_extra'], // 透传参数 'pay_status' => $data['pay_status'], // 支付结果 固定值1 'price' => $data['price'], // 支付金额(单位:元) 'user_id' => $data['user_id'], // 用户唯一标识,游戏方需验证是否和发起订单一致 'sign' => $data['sign'], ]; // $getValues = array_values($param); // if (empty(array_diff(['game_order', 'out_trade_no', 'pay_extra', 'pay_status', 'price', 'user_id', 'sign'], $getValues))) { // return false; // } if (!$channelConfig = json_decode($polyChannelGame['param'], true)) { return false; } $hadleSign = md5($param['game_order'].$param['out_trade_no'].$param['pay_extra'].$param['pay_status'].$param['price'].$param['user_id'].$channelConfig['game_key']); if ($param['sign'] == $hadleSign) { return true; } return false; } // ## 回调 - 下单参数获取 public function getData($data) { if (!isset($data['game_order']) || !isset($data['price']) || !isset($data['out_trade_no'])) { return false; } return [ 'orderid' => $data['game_order'], // 我方聚合订单 'amount' => $data['price'], // 充值金额(单位:元) 'sub_orderid' => $data['out_trade_no'], // 渠道订单 ]; } // ## 回调 - 成功返回 public function getSuccess($msg = '') { echo "success"; exit(); } // ## 回调 - 失败返回 public function getFail($msg = '') { echo "failure:" . $msg; exit(); } }