req_params($card_no, $amount, $card_type, $order_sn); if(empty($params['code'])) { return [false, '商品编号有误', false]; } $sign = $this->sign($params); $params['sign'] = $sign; $resp = http_request(config::ORDER_URL, $params, 'POST', false, config::ExtHeaders, $net_errno); if (empty($resp)) { return [false, '网络错误', true]; } else { Log::record($resp, Log::DEBUG); $resp = json_decode($resp, true); if (empty($resp)) { return [false, '网络错误', true]; } $recode = $resp['recode']; if($recode == 's100') { return [true, '', false]; } elseif (in_array($recode, ['s115', 's116'])) { $net_errno = "HTTP-{$recode}"; return [false, $resp['msg'], true]; } else { return [false, $resp['msg'], false]; } } } public function query($refill_info) { $params['agentcode'] = config::AgentCode; $params['sellerid'] = $refill_info['order_sn']; $params['time'] = date("YmdHis"); $key = config::KEY; $body = "{$params['agentcode']}{$params['sellerid']}{$params['time']}{$key}"; $params['sign'] = md5($body); $resp = http_request(config::QUERY_URL, $params, 'POST', false, config::ExtHeaders); if (empty($resp)) { return [false, '网络错误']; } else { Log::record($resp, Log::DEBUG); $resp = json_decode($resp, true); if (empty($resp)) { return [false, '网络错误']; } elseif ($resp['recode'] == 'q100') { $state = intval($resp['state']); if ($state === 2) { $updata['official_sn'] = $resp['voucher']; Model('refill_order')->edit($refill_info['order_id'], $updata); $order_state = ORDER_STATE_SUCCESS; } elseif (in_array($state,[4,-11])) { $order_state = ORDER_STATE_CANCEL; } else { $order_state = ORDER_STATE_SEND; } return [true, $order_state]; } elseif ($resp['recode'] == 'q106' && (time() - $refill_info['commit_time'] >= 600)){ return [true, ORDER_STATE_NOEXIST]; } else { return [false, $resp['msg']]; } } } public function balance() { $params['agentcode'] = config::AgentCode; $params['time'] = date("YmdHis"); $key = config::KEY; $body = "{$params['agentcode']}{$params['time']}{$key}"; $params['sign'] = md5($body); $resp = http_request(config::BALANCE_URL, $params, 'POST', false, config::ExtHeaders); if (empty($resp)) { return [false, '网络错误']; } else { Log::record($resp, Log::DEBUG); $resp = json_decode($resp, true); if (empty($resp)) { return [false, '网络错误']; } elseif ($resp['recode'] == 'b100') { return [true, $resp['balance']]; } else { return [false, $resp['msg']]; } } } private function sign($params) { $agentcode = config::AgentCode; $key = config::KEY; $content = "{$agentcode}{$params['sellerid']}{$params['account']}{$params['code']}{$params['num']}{$params['value']}{$params['notifyurl']}{$params['remark']}"; $content .= "{$params['time']}{$key}"; return md5($content); } }