|
@@ -14,99 +14,81 @@ class RefillPhone extends refill\IRefillPhone
|
|
|
parent::__construct($cfgs);
|
|
|
}
|
|
|
|
|
|
- private function add_params(int $phone, int $amount, string $order_sn, int $card_type): array
|
|
|
+ private function req_params(int $phone, int $amount, string $order_sn)
|
|
|
{
|
|
|
- $input = [
|
|
|
- 'act' => 'refill',
|
|
|
- 'amount' => $amount,
|
|
|
- 'cardno' => $phone,
|
|
|
- 'mchid' => config::id,
|
|
|
- 'notifyurl' => config::NOTIFY_URL,
|
|
|
- 'op' => 'add',
|
|
|
- 'order_sn' => $order_sn,
|
|
|
- ];
|
|
|
-
|
|
|
- $params = config::gen_params($input,config::add_keys);
|
|
|
- return $params;
|
|
|
+ $params['act'] = 'refill';
|
|
|
+ $params['op'] = 'add';
|
|
|
+ $params['mchid'] = config::MCH_ID;
|
|
|
+ $params['cardno'] = $phone;
|
|
|
+ $params['amount'] = $amount;
|
|
|
+ $params['order_sn'] = $order_sn;
|
|
|
+ $params['notifyurl'] = config::NOTIFY_URL;
|
|
|
+ return $params;
|
|
|
}
|
|
|
|
|
|
- //[$state, $errmsg, $neterr]
|
|
|
- public function add($card_no, $card_type, $amount, $params, &$net_errno = 0): array
|
|
|
+ public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
|
|
|
{
|
|
|
- $params = $this->add_params($card_no, $amount, $params['order_sn'], $card_type);
|
|
|
- if(empty($params)) {
|
|
|
- return [false, '提单参数不符合', false];
|
|
|
- }
|
|
|
+ $params = $this->req_params($card_no, $amount, $params['order_sn']);
|
|
|
+ $sign = config::sign($params);
|
|
|
+ $params['sign'] = $sign;
|
|
|
|
|
|
- $resp = http_request(config::ORDER_URL, $params, 'POST', false, [], $net_errno);
|
|
|
+ $resp = http_request(config::ORDER_URL, $params , 'POST' , false , [] , $net_errno);
|
|
|
if (empty($resp)) {
|
|
|
return [false, '系统错误', true];
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Log::record($resp, Log::DEBUG);
|
|
|
- $resp = json_decode($resp, true);
|
|
|
+ $resp = json_decode($resp ,true);
|
|
|
if (empty($resp)) {
|
|
|
return [false, '系统错误', true];
|
|
|
} elseif ($resp['code'] === 200) {
|
|
|
- return [true, $resp['order_sn'], false]; //好像没有这个sn!!!
|
|
|
+ return [true, '', false];
|
|
|
} else {
|
|
|
return [false, $resp['message'], false];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public function query($refill_info): array
|
|
|
+ public function query($refill_info)
|
|
|
{
|
|
|
- $input = [
|
|
|
- 'act' => 'refill',
|
|
|
- 'mchid' => config::id,
|
|
|
- 'op' => 'query',
|
|
|
- 'order_sn' => $refill_info['order_sn']
|
|
|
- ];
|
|
|
- $params = config::gen_params($input,config::query_keys);
|
|
|
+ $params['act'] = 'refill';
|
|
|
+ $params['op'] = 'query';
|
|
|
+ $params['mchid'] = config::MCH_ID;
|
|
|
+ $params['order_sn'] = $refill_info['order_sn'];
|
|
|
+ $params['sign'] = config::sign($params);
|
|
|
|
|
|
- $resp = http_request(config::QUERY_URL, $params , 'POST');
|
|
|
+ $resp = http_request(config::ORDER_URL, $params , 'POST');
|
|
|
if (empty($resp)) {
|
|
|
- return [false, '系统错误', ''];
|
|
|
+ return [false, '系统错误'];
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Log::record($resp, Log::DEBUG);
|
|
|
$resp = json_decode($resp, true);
|
|
|
if (empty($resp)) {
|
|
|
- return [false, '系统错误', ''];
|
|
|
+ return [false, '系统错误'];
|
|
|
}
|
|
|
-
|
|
|
- $code = intval($resp['code']);
|
|
|
- if ($code === 200)
|
|
|
+ elseif ($resp['code'] === 200)
|
|
|
{
|
|
|
- $val = $resp['datas'];
|
|
|
- $status = intval($val['order_state']);
|
|
|
- $official_sn = intval($val['official_sn']);
|
|
|
-
|
|
|
- //订单状态
|
|
|
- // 0,订单已经取消,充值失败会取消订单。
|
|
|
- // 10,新订单
|
|
|
- // 20,已经支付
|
|
|
- // 30,正在处理
|
|
|
- // 40,充值成功
|
|
|
- // 50,排队中
|
|
|
- if ($status == '40') {
|
|
|
- Model('refill_order')->edit($refill_info['order_id'], ['ch_trade_no' => $val['trade_no'],'official_sn' => $official_sn]);
|
|
|
+ $data = $resp['datas'];
|
|
|
+ if ($data['order_state'] == '40') {
|
|
|
+ $save['ch_trade_no'] = $data['trade_no'];
|
|
|
+ $save['official_sn'] = strtolower($resp['official_sn']) == 'null' ? '' : $resp['official_sn'];
|
|
|
+ Model('refill_order')->edit($refill_info['order_id'], $save);
|
|
|
$order_state = ORDER_STATE_SUCCESS;
|
|
|
- }
|
|
|
- elseif ($status == '0') {
|
|
|
- Model('refill_order')->edit($refill_info['order_id'], ['ch_trade_no' => $val['trade_no']]);
|
|
|
+ } elseif ($data['order_state'] === '0') {
|
|
|
+ Model('refill_order')->edit($refill_info['order_id'], ['ch_trade_no' => $data['trade_no']]);
|
|
|
$order_state = ORDER_STATE_CANCEL;
|
|
|
- }
|
|
|
- else {
|
|
|
+ } elseif (in_array($data['order_state'], ['10', '20', '30', '50'], true)) {
|
|
|
$order_state = ORDER_STATE_SEND;
|
|
|
+ } else {
|
|
|
+ return [false, $resp['message']];
|
|
|
}
|
|
|
- return [true, $order_state, $official_sn];
|
|
|
+ return [true, $order_state];
|
|
|
}
|
|
|
- elseif($code === 202 and (time() - $refill_info['commit_time']) >= 300) {
|
|
|
- return [true, ORDER_STATE_NOEXIST, ''];
|
|
|
+ elseif ($resp['code'] === 202 && (time() - $refill_info['commit_time'] >= 300)) {
|
|
|
+ return [true, ORDER_STATE_NOEXIST];
|
|
|
}
|
|
|
else {
|
|
|
return [false, $resp['message']];
|
|
@@ -114,16 +96,14 @@ class RefillPhone extends refill\IRefillPhone
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public function balance(): array
|
|
|
+ public function balance()
|
|
|
{
|
|
|
- $input = [
|
|
|
- 'act' => 'refill',
|
|
|
- 'mchid' => config::id,
|
|
|
- 'op' => 'balance',
|
|
|
- ];
|
|
|
- $params = config::gen_params($input,config::balance_keys);
|
|
|
+ $params['act'] = 'refill';
|
|
|
+ $params['op'] = 'balance';
|
|
|
+ $params['mchid'] = config::MCH_ID;
|
|
|
+ $params['sign'] = config::sign($params);
|
|
|
|
|
|
- $resp = http_request(config::BALANCE_URL, $params , 'POST');
|
|
|
+ $resp = http_request(config::ORDER_URL, $params , 'POST');
|
|
|
if (empty($resp)) {
|
|
|
return [false, '系统错误'];
|
|
|
}
|
|
@@ -134,7 +114,7 @@ class RefillPhone extends refill\IRefillPhone
|
|
|
if (empty($resp)) {
|
|
|
return [false, '系统错误'];
|
|
|
} elseif ($resp['code'] === 200) {
|
|
|
- return [true, ncPriceFormat($resp['datas']['balance']+$resp['datas']['credit'])];
|
|
|
+ return [true, $resp['datas']['balance']];
|
|
|
} else {
|
|
|
return [false, $resp['message']];
|
|
|
}
|