소스 검색

add wangxin channel to xyz

stanley-king 1 년 전
부모
커밋
49ac3229e1

+ 2 - 1
composer.json

@@ -3,6 +3,7 @@
         "phpoffice/phpspreadsheet": "^1.22",
       "ext-json": "*",
       "ext-redis": "*",
-      "ext-mysqli": "*"
+      "ext-mysqli": "*",
+      "ext-openssl": "*"
     }
 }

+ 1 - 1
helper/refill/IRefill.php

@@ -55,7 +55,7 @@ abstract class IRefill
         $this->mSort = 65536;
         $this->mSupportRegins = [];
     }
-
+    //[$state, $errmsg, $neterr]
     abstract public function add($card_no,$card_type,$amount,$params,&$net_errno = 0);
     abstract public function query($refill_info);
     abstract public function balance();

+ 1 - 4
helper/refill/api/xyz/wangxin/API信息.txt

@@ -2,7 +2,4 @@
 密码:wangxin
 Pid:20230811115729
 后台地址:http://tel.wxdigital.cn:8384/tariffe/admin
-网信公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDD5KS7iQkyAX0c6DU/6cd6BtiZ5Tb1UvVJJdmRC7zhInMpjMqDSCMg/IsKgQXpwrG7Md6s2gN3PQICuJaj3P/nFLakWMSQzMnnFixAu721IB2WN1s0CBvLVwJfrzX2HZhxDyaxI5DcEFZdF/N38J+xLm/X2Mpd2vfNk2OJHhosSwIDAQAB
-
-
-
+网信公钥:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDD5KS7iQkyAX0c6DU/6cd6BtiZ5Tb1UvVJJdmRC7zhInMpjMqDSCMg/IsKgQXpwrG7Md6s2gN3PQICuJaj3P/nFLakWMSQzMnnFixAu721IB2WN1s0CBvLVwJfrzX2HZhxDyaxI5DcEFZdF/N38J+xLm/X2Mpd2vfNk2OJHhosSwIDAQAB

BIN
helper/refill/api/xyz/wangxin/API对接文档.docx


+ 9 - 8
helper/refill/api/xyz/wangxin/RefillCallBack.php

@@ -1,9 +1,11 @@
 <?php
+
 namespace refill\wangxin;
 
 require_once(BASE_HELPER_RAPI_PATH . '/wangxin/config.php');
 
 use refill;
+
 class RefillCallBack implements refill\IRefillCallBack
 {
     public function verify($params): bool
@@ -24,12 +26,13 @@ class RefillCallBack implements refill\IRefillCallBack
         unset($params['sign']);
         $content = '';
         ksort($params);
-        foreach ($params as $key => $val){
-            if(false === $this->check_empty($val)) {
+        foreach ($params as $key => $val)
+        {
+            if (false === $this->check_empty($val)) {
                 $content .= "{$key}={$val}&";
             }
         }
-        $content = rtrim($content,'&');
+        $content = rtrim($content, '&');
         return openssl_verify($content, base64_decode($sign), config::PROVIDER_PUBLIC_KEY);
     }
 
@@ -57,15 +60,13 @@ class RefillCallBack implements refill\IRefillCallBack
         $official_sn = '';
         $order_id = $order_info['order_id'];
         if ($status === '3') {
-            $official_sn = strtolower($params['ext_content']) == 'null' ? '' : $params['ext_content'];
+            $official_sn = strtolower($params['ext_content'] ?? '');
             $data['official_sn'] = $official_sn;
             Model('refill_order')->edit($order_id, $data);
             return [$order_id, true, false, true, $official_sn];
-        }
-        elseif ($status === '2') {
+        } elseif ($status === '2') {
             return [$order_id, false, true, true, $official_sn];
-        }
-        else {
+        } else {
             return [$order_id, false, false, false, $official_sn];
         }
     }

+ 16 - 10
helper/refill/api/xyz/wangxin/RefillPhone.php

@@ -70,7 +70,7 @@ class RefillPhone extends refill\IRefillPhone
         $params = $this->header_params($params);
 
         $params = json_encode($params);
-        $resp = http_post_data(config::QUERY_URL, $params , config::ExtHeaders);
+        $resp = http_post_data(config::QUERY_URL, $params, config::ExtHeaders);
 
         if (empty($resp)) {
             return [false, '网络错误', ''];
@@ -80,6 +80,7 @@ class RefillPhone extends refill\IRefillPhone
             Log::record($resp, Log::DEBUG);
             $resp = json_decode($resp, true);
             $resp = $resp[0];
+
             if (empty($resp)) {
                 return [false, '网络错误', ''];
             }
@@ -87,6 +88,7 @@ class RefillPhone extends refill\IRefillPhone
             {
                 $official_sn = '';
                 $status = $resp['body']['status'];
+
                 if ($status === '3') {
                     $official_sn = $resp['body']['ext_content'];
                     $updata['official_sn'] = $official_sn;
@@ -99,8 +101,12 @@ class RefillPhone extends refill\IRefillPhone
                 } else {
                     return [false, $status, $official_sn];
                 }
+
                 return [true, $order_state, $official_sn];
             }
+            elseif ($resp['body']['code'] === '220005' && (time() - $refill_info['commit_time'] > 1800)) {
+                return [true, ORDER_STATE_NOEXIST];
+            }
             else {
                 return [false, $resp['body']['msg'], ''];
             }
@@ -113,7 +119,7 @@ class RefillPhone extends refill\IRefillPhone
         $params = $this->header_params($params);
 
         $params = json_encode($params);
-        $resp = http_post_data(config::BALANCE_URL, $params , config::ExtHeaders);
+        $resp = http_post_data(config::BALANCE_URL, $params, config::ExtHeaders);
 
         if (empty($resp)) {
             return [false, '系统错误'];
@@ -137,14 +143,14 @@ class RefillPhone extends refill\IRefillPhone
         $params = array_merge($params, $header);
         $content = '';
         ksort($params);
-        foreach ($params as $key => $val){
-            if(false === $this->check_empty($val)) {
+        foreach ($params as $key => $val) {
+            if (false === $this->check_empty($val)) {
                 $content .= "{$key}={$val}&";
             }
         }
-        $content = rtrim($content,'&');
+        $content = rtrim($content, '&');
         $res = openssl_pkey_get_private(config::PRIVATE_KEY);
-        openssl_sign($content, $sign, $res, OPENSSL_ALGO_SHA1 );
+        openssl_sign($content, $sign, $res, OPENSSL_ALGO_SHA1);
         return base64_encode($sign);
     }
 
@@ -153,7 +159,7 @@ class RefillPhone extends refill\IRefillPhone
      */
     private function getMillisecond()
     {
-        $cur = microtime (true);
+        $cur = microtime(true);
         $cur = intval($cur * 1000);
         return $cur;
     }
@@ -161,9 +167,9 @@ class RefillPhone extends refill\IRefillPhone
     private function createNoncestr($length = 32)
     {
         $chars = "abcdefghijklmnopqrstuvwxyz0123456789";
-        $str ="";
-        for ( $i = 0; $i < $length; $i++ )  {
-            $str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);
+        $str = "";
+        for ($i = 0; $i < $length; $i++) {
+            $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
         }
         return $str;
     }

BIN
helper/refill/api/xyz/wangxin/网信充值中心KH通用接口文档V1.4.4.docx


+ 7 - 0
test/TestLanguage.php

@@ -25,4 +25,11 @@ class TestLanguage extends TestCase
             $t = $checker($v);
         }
     }
+
+    public function testStrtolow()
+    {
+        $val = '';
+        $val = null;
+        $k = strtolower($val ?? '');
+    }
 }