$data['user_id'], 'token' => $data['extparam'], ]; $res = get_http_response('https://api.17zhe.cn/user/loginVerify', $param); $res = json_decode($res, true); if ($res['code'] === 0) { return ['user_id' => $data['user_id']]; } return false; } // ## 回调 - 效验 public function paySign($data, $polyChannelGame = []) { $param = Request::instance()->only(['game_order', 'out_trade_no', 'pay_extra', 'pay_status', 'price', 'user_id', 'sign']); if(!$param){ return "参数错误!"; } if (!$channelConfig = json_decode($polyChannelGame['param'], true)) { return "渠道参数配置错误!"; } $sign = $param['sign']; unset($param['sign']); $hadleSign = md5(http_build_query($param).$channelConfig['game_key']); if ($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 = '') { log_message('getFail: '.$msg, 'error', LOG_PATH."complexPaylog/{$this->channel}/"); echo 'fail:'.$msg; exit(); } // 登陆签名 private function signData($param, $app_key) { ksort($param); foreach ($param as $k => $v) { $tmp[] = $k . '=' . urlencode($v); } $str = implode('&', $tmp) . $app_key; return md5($str); } // 支付回调签名 private function notifySign($params, $key) { $data = array( "tm" => $params['tm'], "m_order_no" => $params['m_order_no'], 'cp_order_no' => $params['cp_order_no'], 'out_trade_no' => $params['out_trade_no'], "pay_status" => $params['pay_status'], 'pay_amount' => $params['pay_amount'], 'uid' => $params['uid'], 'server_id' => $params['server_id'], 'server_name' => $params['server_name'], 'role_id' => $params['role_id'], "role_name" => $params['role_name'], "product_id" => $params['product_id'], "product_name" => $params['product_name'], ); ksort($data); $dataSign = http_build_query($data); return md5($dataSign . $key); } }