stanley-king před 1 rokem
rodič
revize
957d0bb4c9

+ 26 - 30
helper/refill/api/xyz/xuyou_oil/RefillOil.php

@@ -17,24 +17,26 @@ class RefillOil extends refill\IRefillOil
 
     private function getProductID($card_type,$amount) : string
     {
-        $product_id = '';
-        if($card_type === mtopcard\PetroChinaCard)
-        {
-            $product_id = config::product_code[$card_type][$amount];
+        if(array_key_exists($card_type,config::product_codes)) {
+            $codes = config::product_codes[$card_type];
+            if(array_key_exists($amount,$codes)) {
+                return $codes[$amount];
+            }
         }
-        return $product_id;
+
+        return false;
     }
 
     public function add($card_no, $card_type, $amount, $params, &$net_errno = 0): array
     {
-        $genParams = function ($card_no, $card_type, $amount, $order_sn, $province)
+        $genParams = function ($card_no, $card_type, $amount, $order_sn, $province,$ch_code)
         {
             $params = [];
 
             $params['mchid'] = config::MCHID;
             $params['orderid'] = $order_sn;
             $params['number'] = $card_no;
-            $params['productid'] = $this->getProductID($card_type,$amount);
+            $params['productid'] = $ch_code;
             $params['timestamp'] = $this->getMillisecond();
             $params['youka'] = mtopcard\ProvinceList[$province];
 
@@ -46,7 +48,12 @@ class RefillOil extends refill\IRefillOil
             return $params;
         };
 
-        $params = $genParams($card_no, $card_type, $amount, $params['order_sn'], $params['province']);
+        $ch_code = $this->getProductID($card_type,$amount);
+        if(!$ch_code) {
+            return [false, '系统错误', false];
+        }
+
+        $params = $genParams($card_no, $card_type, $amount, $params['order_sn'], $params['province'], $ch_code);
         $params = json_encode($params);
 
         $resp = http_post_data(config::ORDER_URL, $params , config::ExtHeaders, $net_errno);
@@ -59,14 +66,11 @@ class RefillOil extends refill\IRefillOil
             $resp = json_decode($resp, true);
             if (empty($resp)) {
                 return [false, '系统错误', true];
-            }
-            elseif ($resp['status'] === 0) {
+            } elseif ($resp['status'] === 0) {
                 return [true, $resp['oid'], false];
-            }
-            elseif ($resp['status'] === -1) {
+            } elseif ($resp['status'] === -1) {
                 return [false, $resp['msg'], false];
-            }
-            else {
+            } else {
                 return [false, $resp['msg'], true];
             }
         }
@@ -100,26 +104,20 @@ class RefillOil extends refill\IRefillOil
             $resp = json_decode($resp, true);
             if (empty($resp)) {
                 return [false, '系统错误'];
-            }
-            elseif ($resp['status'] === -1) {
+            } elseif ($resp['status'] === -1) {
                 return [false, $resp['msg']];
-            }
-            elseif ($resp['status'] === 1) {
+            } elseif ($resp['status'] === 1) {
                 $order_state = ORDER_STATE_SEND;
-            }
-            elseif ($resp['status'] === 2) {
+            } elseif ($resp['status'] === 2) {
                 $official_sn = $resp['voucher'] ?? '';
                 Model('refill_order')->edit($refill_info['order_id'], ['official_sn' => $official_sn]);
                 $order_state = ORDER_STATE_SUCCESS;
-            }
-            elseif ($resp['status'] === 3) {
+            } elseif ($resp['status'] === 3) {
                 $order_state = ORDER_STATE_CANCEL;
-            }
-            elseif ($resp['status'] === 4 && (time() - $refill_info['commit_time'] >= 600)) {
+            } elseif ($resp['status'] === 4 && (time() - $refill_info['commit_time'] >= 600)) {
                 $order_state = ORDER_STATE_NOEXIST;
                 return [false, $order_state];
-            }
-            else {
+            } else {
                 return [false, $resp['msg']];
             }
 
@@ -153,11 +151,9 @@ class RefillOil extends refill\IRefillOil
             $resp = json_decode($resp, true);
             if (empty($resp)) {
                 return [false, '系统错误'];
-            }
-            elseif ($resp['status'] === 1) {
+            } elseif ($resp['status'] === 1) {
                 return [true, $resp['balance']];
-            }
-            else {
+            } else {
                 return [false, $resp['msg']];
             }
         }

+ 1 - 1
helper/refill/api/xyz/xuyou_oil/config.php

@@ -15,7 +15,7 @@ class config
     const NOTIFY_URL = BASE_SITE_URL . "/mobile/callback/refill_xuyou_oil.php";
     const ExtHeaders = ['Content-Type: application/json'];
 
-    const product_code = [
+    const product_codes = [
         mtopcard\PetroChinaCard => [
             100 => 990001,
         ],

binární
helper/refill/api/xyz/xuyou_oil/~$接口文档V1.0(1).docx


+ 3 - 0
mobile/callback/refill_xuyou_oil.php

@@ -1,5 +1,8 @@
 <?php
+
 $content = file_get_contents("php://input");
 $input = json_decode($content, true);
+
 refill\util::push_notify('xuyou_oil',$input);
+
 echo ('ok');