stanley-king hace 1 año
padre
commit
b26dff95e0

+ 21 - 0
docker/compose/homecuda/remote/docker-compose.yml

@@ -0,0 +1,21 @@
+version: "3.9"
+
+include:
+  - ../docker-compose.networks.yml
+
+#   docker run -d-p 3333:22 --name php_remote_env php-sshd:7.3.18
+
+services:
+  phpcli:
+    image: php-sshd:7.3.18
+    ports:
+      - 3333:22
+    volumes:
+      - ../../../../:${SHOP_ROOT_PATH}
+      - ../conf/etc/localtime:/etc/localtime:ro
+      - ../conf/php/php-debug.ini:/usr/local/etc/php/php.ini
+      - ${SHOP_UPLOAD_PATH}:${SHOP_ROOT_PATH}/data/upload
+      - ${SHOP_LOG_PATH}:${SHOP_ROOT_PATH}/data/log
+    container_name: "${CONTAINER_PREFIX}-cli"
+    networks:
+      - ${DOCKER_NET_NAME}

+ 13 - 9
helper/refill/api/mh/suhu_normal/RefillCallBack.php

@@ -8,9 +8,14 @@ class RefillCallBack implements refill\IRefillCallBack
 {
     public function verify($params): bool
     {
-        $input = $params;
-        unset($input['sign']);
-        $sign = config::sign($input);
+        $signer = function ($params) {
+            $body = "code={$params['memberId']}rechargeOrderId={$params['rechargeOrderId']}memberOrderId={$params['memberOrderId']}rechargeAccount={$params['rechargeAccount']}productId={$params['productId']}faceValue={$params['faceValue']}signkey=";
+            $body .= config::KEY;
+
+            return md5($body);
+        };
+
+        $sign = $signer($params);
         if ($params['sign'] == $sign) {
             return true;
         } else {
@@ -21,25 +26,24 @@ class RefillCallBack implements refill\IRefillCallBack
     //[$order_id, $success, $can_try, $need_handle, $official_sn]
     public function notify($params): array
     {
-
-        $order_sn = $params['merchant_no'];
+        $order_sn = $params['memberOrderId'];
         $order_info = Model('vr_order')->getOrderInfo(['order_sn' => $order_sn]);
 
         if (empty($order_info)) {
             return [false, false, false, false, ''];
         }
 
-        $official_sn = strtolower($params['official_sn']) == 'null' ? '' : $params['official_sn'];
+        $official_sn = trim($params['supplyCert'] ?? '');
         $order_id = $order_info['order_id'];
 
-        $status = intval($params['recharge_status']);
-        if ($status === 3) {
+        $code = intval($params['code']);
+        if ($code === 201) {
             $data['ch_trade_no'] = $params['order_no'];
             $data['official_sn'] = $official_sn;
             Model('refill_order')->edit($order_id, $data);
             return [$order_id, true, false, true, $official_sn];
         }
-        elseif (in_array($status,[4,5])) {
+        elseif (in_array($code, [202, 203, 204])) {
             Model('refill_order')->edit($order_id, ['ch_trade_no' => $params['order_no']]);
             return [$order_id, false, true, true, ''];
         }

+ 1 - 1
helper/refill/api/mh/suhu_normal/RefillPhone.php

@@ -170,7 +170,7 @@ class RefillPhone extends refill\IRefillPhone
     public function balance(): array
     {
         $params = $this->balance_params();
-        $resp = http_request(config::ORDER_URL, $params , 'POST');
+        $resp = http_request(config::BALANCE_URL, $params , 'POST');
 
         if (empty($resp)) {
             return [false, '系统错误'];

+ 5 - 3
helper/refill/api/mh/suhu_normal/config.php

@@ -14,12 +14,14 @@ class config
     const BALANCE_URL = 'http://api2.sujiaofei.com/queryRechargeMember';
 
     const NOTIFY_URL = BASE_SITE_URL . "/racc/callback/mh/suhu_normal.php";
+
     const ERRCODES = [101, 102, 103, 104, 105, 106, 107, 108, 109];
 
     private static $stStoreProducts = [
-        50  => [4 => 'G36211237846176976', 5 => 'G36211237856416056', 6 => 'G36211237851296016'],
-        100 => [4 => 'G36211237847712888', 5 => 'G36211237857952968', 6 => 'G36211237852832928'],
-        200 => [4 => 'G36211237849760104', 5 => 'G36211237859488880', 6 => 'G36211237854880144']
+        20  => [              5 => '10016'],
+        30  => [4 => '10012', 5 => '10015', 6 => '10019'],
+        50  => [4 => '10011', 5 => '10014', 6 => '10018'],
+        100 => [4 => '10010', 5 => '10013', 6 => '10017']
     ];
 
     public static function sign($params)

+ 18 - 0
test/mh/TestRefill.php

@@ -39,8 +39,26 @@ class TestRefill extends TestCase
         $content = json_decode($content,true);
         $provider->verify($content);
         $provider->notify($content);
+    }
 
+    public function testSuhu()
+    {
+        $provider = $this->getProvider('suhu_normal');
+        $order_sn = $this->make_sn();
+        $resp = $provider->add(13911129867, 5, 30, ['order_sn' => $order_sn, 'regin_no' => 1]);
+        $resp = $provider->query(['order_sn' => $order_sn]);
+        $resp = $provider->balance();
     }
+    public function testSuhuCB()
+    {
+        $content = '{"order_no":"OD40636475187360296","merchant_no":"0059570753462761433314","recharge_account":"13911129867","recharge_status":4,"complete_time":"2023-11-16 15:12:42","settlement_price":"47.30","total_amount":"50.00","actual_amount":"0.00","create_time":"2023-11-16 15:12:41","custom_tag":"123456","sign":"49b7f9f32a34f1c83dcb0d976f28d061"}';
+        $provider = $this->getProvider('suhu_normal','RefillCallBack');
+        $content = json_decode($content,true);
+        $provider->verify($content);
+        $provider->notify($content);
+    }
+
+
     public function testJson()
     {
         $val = json_encode(['account' => '13911129867']);