stanley-king 3 年之前
父節點
當前提交
d8e3b73c88
共有 1 個文件被更改,包括 44 次插入37 次删除
  1. 44 37
      helper/refill/api/xyz/shuoruan/RefillPhone.php

+ 44 - 37
helper/refill/api/xyz/shuoruan/RefillPhone.php

@@ -14,32 +14,14 @@ class RefillPhone extends refill\IRefillPhone
         parent::__construct($cfgs);
     }
 
-    private function url_request($params, $action)
+    private function pack_params($params)
     {
-        $params['action'] = $action;
-        $sign = $this->sign($params);
-
-        $req['sign'] = $sign;
-        $req['agentAccount'] = config::ACCOUNT;
-        $req['busiBody'] = $params;
-        $req = json_encode($req);
-
-        $url = config::API_URL;
-        $resp = http_post_data($url, $req, config::ExtHeaders);
-        return iconv('GB2312', 'UTF-8', $resp);
-    }
+        $json_str = json_encode($params);
+        $content  = $json_str . config::KEY;
+        $content = md5($content);
 
-    private function req_params(int $phone,int $amount, string $order_sn)
-    {
-        $params['orderId'] = $order_sn;
-        $params['chargeAcct'] = $phone;
-        $params['chargeCash'] = $amount;
-        $params['chargeType'] = 0;
-        $params['retUrl'] = urlencode(config::NOTIFY_URL);
-        $params['action'] = 'CZ';
-
-        $sign = $this->sign($params);
-        $req['sign'] = $sign;
+        $req = [];
+        $req['sign'] = $content;
         $req['agentAccount'] = config::ACCOUNT;
         $req['busiBody'] = $params;
         return json_encode($req);
@@ -47,10 +29,24 @@ class RefillPhone extends refill\IRefillPhone
 
     public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
     {
-        $req = $this->req_params($card_no, $amount, $params['order_sn']);
-
-        $resp = http_post_data(config::API_URL, $req, config::ExtHeaders, $net_errno);
+        $params_getter = function ($order_sn,$phone,$amount) {
+            $params = [];
+            $params['orderId'] = $order_sn;
+            $params['chargeAcct'] = $phone;
+            $params['chargeCash'] = $amount;
+            $params['chargeType'] = 0;
+            $params['retUrl'] = urlencode(config::NOTIFY_URL);
+            $params['action'] = 'CZ';
+
+            return $params;
+        };
+
+        $params = $params_getter($params['order_sn'], $card_no, $amount);
+        $body = $this->pack_params($params);
+
+        $resp = http_post_data(config::API_URL, $body, config::ExtHeaders, $net_errno);
         $resp = iconv('GB2312', 'UTF-8', $resp);
+
         if (empty($resp)) {
             return [false, '系统错误', true];
         }
@@ -73,8 +69,17 @@ class RefillPhone extends refill\IRefillPhone
 
     public function query($refill_info)
     {
-        $params['orderId'] = $refill_info['order_sn'];
-        $resp = $this->url_request($params,'CX');
+        $params_getter = function ($order_sn) {
+            $params = [];
+            $params['orderId'] = $order_sn;
+            $params['action'] = 'CX';
+            return $params;
+        };
+
+        $params = $params_getter($refill_info['order_sn']);
+        $body = $this->pack_params($params);
+        $resp = http_post_data(config::API_URL, $body, config::ExtHeaders, $net_errno);
+        $resp = iconv('GB2312', 'UTF-8', $resp);
 
         if (empty($resp)) {
             return [false, '系统错误'];
@@ -108,7 +113,16 @@ class RefillPhone extends refill\IRefillPhone
 
     public function balance()
     {
-        $resp = $this->url_request([],'YE');
+        $params_getter = function () {
+            $params['action'] = 'YE';
+            return $params;
+        };
+
+        $params = $params_getter();
+        $body = $this->pack_params($params);
+
+        $resp = http_post_data(config::API_URL, $body, config::ExtHeaders, $net_errno);
+        $resp = iconv('GB2312', 'UTF-8', $resp);
 
         if (empty($resp)) {
             return [false, '系统错误'];
@@ -127,11 +141,4 @@ class RefillPhone extends refill\IRefillPhone
             }
         }
     }
-
-    private function sign($params)
-    {
-        $json_str = json_encode($params);
-        $content  = $json_str . config::KEY;
-        return md5($content);
-    }
 }