$data['user_id'], 'authToken' => $data['channel_token'], ]; $res = get_http_response('http://sdk.ezjld.com/checkUser', $param); $res = json_decode($res, true); if ($res['status'] == 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' => ['notify_url' => $data['notify_url']]]; } // ## 回调 - 效验 public function paySign($data, $polyChannelGame = []) { $handleKeys = ['orderNumber', 'cpOrderNumber', 'userName', 'uid', 'serverName', 'primaryAmount', 'time', 'extrasParams', 'sign']; if (array_diff($handleKeys, array_keys($data))) { return false; } $param = [ 'orderNumber' => $data['orderNumber'], 'cpOrderNumber' => $data['cpOrderNumber'], 'userName' => $data['userName'], 'uid' => $data['uid'], 'serverName' => $data['serverName'], 'primaryAmount' => $data['primaryAmount'], 'time' => $data['time'], 'extrasParams' => $data['extrasParams'], 'sign' => $data['sign'], ]; if (!$channelConfig = json_decode($polyChannelGame['param'], true)) { return false; } $hadleSign = $this->signNotify($param, $channelConfig['pay_secret']); if ($data['sign'] == $hadleSign) { return true; } return false; } // ## 回调处理相关参数 public function getData($data) { if (!isset($data['cpOrderNumber']) || !isset($data['primaryAmount']) || !isset($data['orderNumber'])) { return false; } return [ 'orderid' => $data['cpOrderNumber'], // 我方聚合订单 'amount' => formatFenToYuan($data['primaryAmount']), // 充值金额(单位:元) 'sub_orderid' => $data['orderNumber'], // 渠道订单 ]; } // ## 回调 - 成功返回 public function getSuccess($msg = '') { echo 'SUCCESS'; exit(); } // ## 回调 - 失败返回 public function getFail($msg = '') { echo 'FAIL'; exit(); } // 回调签名 private function signNotify($param, $app_key) { $oldSign = $param['sign']; unset($param['sign']); ksort($param); $string = ''; foreach ($param as $k => $v) { $string .= $k . '=' . $v . '&'; } $sign = $string . $app_key; $md5Res = md5($sign); trace('str=' . $sign . ' - sign: ' . $oldSign . ' - ' . $md5Res, 'Ledaoios@signNotify.result'); return $md5Res; } }