sign($params, $paramArr['paykey']); if ($sign == $thisSign && $params['paid_state'] == 1) { return true; } return false; } private function sign($param, $key) { $param = array_filter($param, function ($v, $k) { if ($k !== 'sign_type' && $k !== 'sign' && $v !== '') { return true; } }, ARRAY_FILTER_USE_BOTH); ksort($param); reset($param); $signStr = ''; foreach ($param as $k => $v) { $signStr .= $k . '=' . $v . '&'; } if (get_magic_quotes_gpc()) { $signStr = stripslashes($signStr); } return md5($signStr . $key); } /** * 系统使用参数名转换 */ public function getData($data) { return [ 'orderid'=>$data['cp_order_no'],//我方聚合订单 'amount'=>$data['paid_amt'], // 充值金额 'sub_orderid'=>$data['m_order_no'],//渠道订单 ]; } public function getFail($msg = '') { echo 'FAIL'; exit(); } public function getSuccess($msg = '') { echo 'SUCCESS'; exit(); } /** * 获取用户id * @param $data * @return bool */ public function getSpecialParam($data,$polyChannelGame = []){ if (!$paramArr = json_decode($polyChannelGame['param'], true)) { return false; } $param = [ 'tm' => time(), 'cchid' => $data['cchid'], 'appid' => $data['cappid'], 'access_token' => $data['channelToken'], ]; $param['sign'] = $this->sign($param, $paramArr['appkey']); $result = getCurl($this->check_url, $param); log_message($this->check_url . '?' . http_build_query($param) . ' ' . $result, 'log', LOG_PATH . 'complexLoginlog/' . $this->channel . '/'); $result = json_decode($result, true); if ($result['code'] == 200) { return $result['data']['openid']; } else { return false; } } }