Selaa lähdekoodia

xingzy queryapi

xiaoyu 3 vuotta sitten
vanhempi
commit
761e80f0e0

+ 139 - 137
helper/refill/api/xyz/xingzy/RefillPhone.php

@@ -1,138 +1,140 @@
-<?php
-
-namespace refill\xingzy;
-
-require_once(BASE_HELPER_RAPI_PATH . '/xingzy/config.php');
-
-use refill;
-use Log;
-
-class RefillPhone extends refill\IRefillPhone
-{
-    public function __construct($cfgs)
-    {
-        parent::__construct($cfgs);
-    }
-
-    private function req_params(int $phone, int $card_type, int $amount, string $order_sn)
-    {
-        $params['phone'] = $phone;
-        $params['access_key'] = config::ACCESS_KEY;
-        $params['par_value'] = $amount;
-        $params['code'] = config::product_code[$card_type][$amount];
-        $params['producttype'] = 0;
-        $params['out_trade_no'] = $order_sn;
-        $params['timestamp'] = time();
-
-        return $params;
-    }
-
-    public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
-    {
-        $params = $this->req_params($card_no, $card_type, $amount, $params['order_sn']);
-        $sign = $this->sign($params);
-        $params['sign'] = $sign;
-        $params['notify_url'] = config::NOTIFY_URL;
-        $params = json_encode($params);
-
-        $resp = http_post_data(config::ORDER_URL, $params , 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];
-            } elseif ($resp['code'] == 1) {
-                return [true, $resp['data']['orderid'], false];
-            } elseif ($resp['code'] == 3) {
-                return [false, $resp['msg'], false];
-            } elseif (in_array($resp['code'], [0,2])) {
-                $net_errno = "HTTP-{$resp['code']}";
-                return [false, $resp['msg'], true];
-            } else {
-                $err = 998;
-                $net_errno = "HTTP-{$err}";
-                return [false, $resp['msg'], true];
-            }
-        }
-    }
-
-    public function query($refill_info)
-    {
-        $params['access_key'] = config::ACCESS_KEY;
-        $params['orderid'] = $refill_info['ch_trade_no'];
-        $params['out_trade_no'] = $refill_info['order_sn'];
-        $params['timestamp'] = time();
-        $params['sign'] = $this->sign($params);
-        $params = json_encode($params);
-
-        $resp = http_post_data(config::QUERY_URL, $params , config::ExtHeaders);
-
-        if (empty($resp)) {
-            return [false, '系统错误'];
-        }
-        else
-        {
-            Log::record($resp, Log::DEBUG);
-            $resp = json_decode($resp, true);
-            if (empty($resp)) {
-                return [false, '系统错误'];
-            }
-            else
-            {
-                $status = intval($resp['code']);
-                if ($status === 2) {
-                    Model('refill_order')->edit($refill_info['order_id'], ['official_sn' => $resp['data']['official_id']]);
-                    $order_state = ORDER_STATE_SUCCESS;
-                } elseif ($status === 3) {
-                    $order_state = ORDER_STATE_CANCEL;
-                } elseif ($status === 1) {
-                    $order_state = ORDER_STATE_SEND;
-                } else {
-                    return [false, $resp['msg']];
-                }
-                return [true, $order_state];
-            }
-        }
-    }
-
-    public function balance()
-    {
-        $params['access_key'] = config::ACCESS_KEY;
-        $params['timestamp'] = time();
-        $params['sign'] = $this->sign($params);
-        $params = json_encode($params);
-
-        $resp = http_post_data(config::BALANCE_URL, $params , 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['code'] == 1) {
-                return [true, $resp['balance']];
-            } else {
-                return [false, $resp['msg']];
-            }
-        }
-    }
-
-    private function sign($params)
-    {
-        ksort($params);
-        $body = "";
-        foreach ($params as $k => $v) {
-            $body .= "{$k}{$v}";
-        }
-        return base64_encode(hash_hmac("sha1", $body, config::ACCESS_SECRET, true));
-    }
+<?php
+
+namespace refill\xingzy;
+
+require_once(BASE_HELPER_RAPI_PATH . '/xingzy/config.php');
+
+use refill;
+use Log;
+
+class RefillPhone extends refill\IRefillPhone
+{
+    public function __construct($cfgs)
+    {
+        parent::__construct($cfgs);
+    }
+
+    private function req_params(int $phone, int $card_type, int $amount, string $order_sn)
+    {
+        $params['phone'] = $phone;
+        $params['access_key'] = config::ACCESS_KEY;
+        $params['par_value'] = $amount;
+        $params['code'] = config::product_code[$card_type][$amount];
+        $params['producttype'] = 0;
+        $params['out_trade_no'] = $order_sn;
+        $params['timestamp'] = time();
+
+        return $params;
+    }
+
+    public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
+    {
+        $params = $this->req_params($card_no, $card_type, $amount, $params['order_sn']);
+        $sign = $this->sign($params);
+        $params['sign'] = $sign;
+        $params['notify_url'] = config::NOTIFY_URL;
+        $params = json_encode($params);
+
+        $resp = http_post_data(config::ORDER_URL, $params , 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];
+            } elseif ($resp['code'] == 1) {
+                return [true, $resp['data']['orderid'], false];
+            } elseif ($resp['code'] == 3) {
+                return [false, $resp['msg'], false];
+            } elseif (in_array($resp['code'], [0,2])) {
+                $net_errno = "HTTP-{$resp['code']}";
+                return [false, $resp['msg'], true];
+            } else {
+                $err = 998;
+                $net_errno = "HTTP-{$err}";
+                return [false, $resp['msg'], true];
+            }
+        }
+    }
+
+    public function query($refill_info)
+    {
+        $params['access_key'] = config::ACCESS_KEY;
+        $params['orderid'] = $refill_info['ch_trade_no'];
+        $params['out_trade_no'] = $refill_info['order_sn'];
+        $params['timestamp'] = time();
+        $params['sign'] = $this->sign($params);
+        $params = json_encode($params);
+
+        $resp = http_post_data(config::QUERY_URL, $params , config::ExtHeaders);
+
+        if (empty($resp)) {
+            return [false, '系统错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = json_decode($resp, true);
+            if (empty($resp)) {
+                return [false, '系统错误'];
+            }
+            else
+            {
+                $status = intval($resp['code']);
+                if ($status === 2) {
+                    Model('refill_order')->edit($refill_info['order_id'], ['official_sn' => $resp['data']['official_id']]);
+                    $order_state = ORDER_STATE_SUCCESS;
+                } elseif ($status === 3) {
+                    $order_state = ORDER_STATE_CANCEL;
+                } elseif ($status === 1) {
+                    $order_state = ORDER_STATE_SEND;
+                } elseif ($status === 5 && (time() - $refill_info['commit_time'] > 600)) {
+                    $order_state = ORDER_STATE_NOEXIST;
+                } else {
+                    return [false, $resp['msg']];
+                }
+                return [true, $order_state];
+            }
+        }
+    }
+
+    public function balance()
+    {
+        $params['access_key'] = config::ACCESS_KEY;
+        $params['timestamp'] = time();
+        $params['sign'] = $this->sign($params);
+        $params = json_encode($params);
+
+        $resp = http_post_data(config::BALANCE_URL, $params , 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['code'] == 1) {
+                return [true, $resp['balance']];
+            } else {
+                return [false, $resp['msg']];
+            }
+        }
+    }
+
+    private function sign($params)
+    {
+        ksort($params);
+        $body = "";
+        foreach ($params as $k => $v) {
+            $body .= "{$k}{$v}";
+        }
+        return base64_encode(hash_hmac("sha1", $body, config::ACCESS_SECRET, true));
+    }
 }

+ 2 - 0
helper/refill/api/xyz/xingzy_normal/RefillPhone.php

@@ -102,6 +102,8 @@ class RefillPhone extends refill\IRefillPhone
                     $order_state = ORDER_STATE_CANCEL;
                 } elseif ($status === 1) {
                     $order_state = ORDER_STATE_SEND;
+                } elseif ($status === 5 && (time() - $refill_info['commit_time'] > 600)) {
+                    $order_state = ORDER_STATE_NOEXIST;
                 } else {
                     return [false, $resp['msg']];
                 }