|
@@ -8,7 +8,6 @@ use mtopcard;
|
|
|
use refill;
|
|
|
use Log;
|
|
|
|
|
|
-
|
|
|
class RefillPhone extends refill\IRefillPhone
|
|
|
{
|
|
|
public function __construct($cfgs)
|
|
@@ -41,8 +40,7 @@ class RefillPhone extends refill\IRefillPhone
|
|
|
return [];
|
|
|
}
|
|
|
|
|
|
- $params = [
|
|
|
- 'AppKey' => config::AppKey,
|
|
|
+ $input = [
|
|
|
'BuyCount' => 1,
|
|
|
'CallBackUrl' => config::NOTIFY_URL,
|
|
|
'ChargeAccount' => $phone,
|
|
@@ -52,15 +50,9 @@ class RefillPhone extends refill\IRefillPhone
|
|
|
'TimesTamp' => $this->getUnixTimestamp()
|
|
|
];
|
|
|
|
|
|
- $params['Sign'] = config::sign($params);
|
|
|
- return $params;
|
|
|
+ return config::gen_params($input,config::add_keys);
|
|
|
}
|
|
|
|
|
|
- private function method($method,$data = [],$attach = '')
|
|
|
- {
|
|
|
- $param = array_merge($data, ['Sign' => config::sign($data)]);
|
|
|
- return $param;
|
|
|
- }
|
|
|
private function getUnixTimestamp ()
|
|
|
{
|
|
|
$microtime = microtime(true); // 获取当前时间戳和微秒数
|
|
@@ -97,15 +89,11 @@ class RefillPhone extends refill\IRefillPhone
|
|
|
|
|
|
public function query($refill_info): array
|
|
|
{
|
|
|
- //$params['merchant_no'] = $refill_info['order_sn'];//sn码
|
|
|
- //$params = $this->method('query.order',$params);//查数据库情况
|
|
|
-
|
|
|
- //拼接签名需要顺序AppKey,TimesTamp,MOrderID
|
|
|
-
|
|
|
- $params['AppKey'] = config::AppKey;
|
|
|
- $params['TimesTamp'] = $this->getUnixTimestamp();
|
|
|
- $params['MOrderID'] = $refill_info['order_sn'];
|
|
|
- $params['Sign'] = config::sign($params);
|
|
|
+ $input = [
|
|
|
+ 'TimesTamp' => $this->getUnixTimestamp(),
|
|
|
+ 'MOrderID' =>$refill_info['order_sn']
|
|
|
+ ];
|
|
|
+ $params = config::gen_params($input,config::query_keys);
|
|
|
|
|
|
$resp = http_request(config::QUERY_URL, $params , 'POST');
|
|
|
if (empty($resp)) {
|
|
@@ -120,20 +108,18 @@ class RefillPhone extends refill\IRefillPhone
|
|
|
}
|
|
|
|
|
|
$code = intval($resp['Code']);
|
|
|
- if ($code === 999) // 受理成功
|
|
|
+ if ($code === 999)
|
|
|
{
|
|
|
$val = $resp['Data'];
|
|
|
- $status = $val['OrderState'];
|
|
|
- $official_sn = $val['ExtendParam']['OfficialOrderID'] == 'null'? '':strtolower($val['ExtendParam']['OfficialOrderID']) ;
|
|
|
+ $status = intval($val['OrderState']);
|
|
|
+ $official_sn = $val['ExtendParam']['OfficialOrderID'] ?? '';
|
|
|
|
|
|
//充值状态:1=订单正在处理中,2=订单成功,3=订单失败,4=订单状态异常或位置
|
|
|
- if ($status == '2') { //成功了存订单号和官方透传的流水号
|
|
|
- $save['ch_trade_no'] = $val['OrderID'];//存平台的订单号不是存订单sn
|
|
|
- $save['official_sn'] = $official_sn;
|
|
|
- Model('refill_order')->edit($refill_info['order_id'], $save);
|
|
|
+ if ($status == 2) {
|
|
|
+ Model('refill_order')->edit($refill_info['order_id'], ['ch_trade_no' => $val['OrderID'],'official_sn' => $official_sn]);
|
|
|
$order_state = ORDER_STATE_SUCCESS;
|
|
|
}
|
|
|
- elseif ($status == '3') {//失败了只存订单号
|
|
|
+ elseif ($status == 3) {
|
|
|
Model('refill_order')->edit($refill_info['order_id'], ['ch_trade_no' => $val['OrderID']]);
|
|
|
$order_state = ORDER_STATE_CANCEL;
|
|
|
}
|
|
@@ -156,12 +142,12 @@ class RefillPhone extends refill\IRefillPhone
|
|
|
|
|
|
public function balance(): array
|
|
|
{
|
|
|
- $params['AppKey']=config::AppKey;
|
|
|
- $params['TimesTamp']=$this->getUnixTimestamp();
|
|
|
- $params['Sign'] = config::sign($params);
|
|
|
+ $input = [
|
|
|
+ 'TimesTamp' => $this->getUnixTimestamp(),
|
|
|
+ ];
|
|
|
+ $params = config::gen_params($input,config::balance_keys);
|
|
|
|
|
|
$resp = http_request(config::BALANCE_URL, $params , 'POST');
|
|
|
-
|
|
|
if (empty($resp)) {
|
|
|
return [false, '系统错误'];
|
|
|
}
|