req_params($card_no, $amount, $card_type, $params['order_sn']); $params['router'] = 'submit.recharge.order'; $time = time(); $nonce = rand(100000,999999); $sign = $this->sign($params , $time , $nonce); $header = [ 'Content-Type: application/json;charset=utf-8', "timestamp: {$time}", "nonce: {$nonce}", "ExpiredTime: 10", "Authorization: {$sign}", ]; $params = json_encode($params); $resp = http_post_data(config::ORDER_URL, $params , $header , $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]; } elseif ($resp['code'] == 10000) { if ($resp['data']['orders_success'][0]['state'] == 'success') { return [true, $resp['orders_success'][0]['sys_sn'], false]; } else { return [false, $resp['orders_failure'][0]['message'], false]; } } else { return [false, $resp['message'], false]; } } } public function query($refill_info) { $params['data'] = [$refill_info['order_sn']]; $params['app_id'] = config::APPID; $params['request_id'] = $refill_info['order_sn']; $params['version'] = 'v1.0'; $params['router'] = 'submit.member.orders_info'; $time = time(); $nonce = rand(100000,999999); $sign = $this->sign($params , $time , $nonce); $header = [ 'Content-Type: application/json;charset=utf-8', "timestamp: {$time}", "nonce: {$nonce}", "ExpiredTime: 10", "Authorization: {$sign}", ]; $params = json_encode($params); $resp = http_post_data(config::QUERY_URL, $params , $header); if (empty($resp)) { return [false, '系统错误']; } else { Log::record($resp, Log::DEBUG); $resp = json_decode($resp ,true); if (empty($resp)) { return [false, '系统错误']; } elseif($resp['code'] == 10000) { $data = $resp['data']; if ($data['orders'][0]['state'] == '支付成功') { $order_state = ORDER_STATE_SUCCESS; $save['official_sn'] = $data['orders'][0]['platformOrderId']; Model('refill_order')->edit($refill_info['order_id'], $save); } elseif ($data['orders'][0]['state'] == '支付失败') { $order_state = ORDER_STATE_CANCEL; } elseif (in_array($data['orders'][0]['state'] , ['待分配' , '待获取' , '处理中'])) { $order_state = ORDER_STATE_SEND; } else { return [false, $resp['message']]; } return [true, $order_state]; } else { return [false , $resp['message']]; } } } private function sign($params , $time , $nonce) { $key = config::APP_KEY; $content = $params['app_id'] . '&' . $key . '&' . $params['router'] . '&' . $time . '&' . $nonce; return md5($content); } }