stanley-king 1 éve
szülő
commit
8d5366d6b9

+ 2 - 2
data/config/dev/base.ini.php

@@ -54,14 +54,14 @@ define('SSH_TUNEL_PROD','local');
 
 if(SSH_TUNEL_PROD ==='local') {
     $config['db'][1]['dbhost']       = MASTER_DBHOST;
-    $config['db'][1]['dbport']       = '3306';
+    $config['db'][1]['dbport']       = '3307';
     $config['db'][1]['dbuser']       = 'root';
     $config['db'][1]['dbpwd']        = '55668899';
     $config['db'][1]['dbname']       = 'xyzshop';
     $config['db'][1]['dbcharset']    = 'UTF-8';
 
     $config['db']['slave'][0]['dbhost']     = SLAVE_DBHOST;
-    $config['db']['slave'][0]['dbport']     = '3306';
+    $config['db']['slave'][0]['dbport']     = '3307';
     $config['db']['slave'][0]['dbuser']     = 'root';
     $config['db']['slave'][0]['dbpwd']      = '55668899';
     $config['db']['slave'][0]['dbname']     = 'xyzshop';

+ 28 - 17
helper/rbridge/BridgeTrait.php

@@ -15,13 +15,23 @@ trait BridgeTrait
 {
     public function order_query($mchid,$mch_order)
     {
+        $detail_checker = function($mchid, $mch_order)
+        {
+            $mod_refill = Model('refill_order');
+            $detail = $mod_refill->get_detail($mchid,$mch_order);
+            if (empty($detail)) {
+                return false;
+            } else {
+                return true;
+            }
+        };
+
+        $send = ['mchid' => $mchid,'order_sn' => $mch_order,'order_state' => ORDER_STATE_SEND];
+
         $order_state = refill\util::query_queue_order($mchid,$mch_order);
         if ($order_state == ORDER_STATE_QUEUE || $order_state == ORDER_STATE_SEND) {
             Log::record("query_state in queue mchid=$mchid mch_order=$mch_order order_state=$order_state", Log::DEBUG);
-            $result['mchid'] = $mchid;
-            $result['order_sn'] = $mch_order;
-            $result['order_state'] = ORDER_STATE_SEND;
-            return [200,$result];
+            return [200,$send];
         }
         else
         {
@@ -34,15 +44,24 @@ trait BridgeTrait
                 $insert = ['mch_order' => $mch_order,'mchid' => $mchid];
 
                 $items = $mod_refill->getOrderInfo(['mch_order' => $mch_order,'mchid' => $mchid]);
-                if (empty($items)) {
+                if (empty($items))
+                {
                     Log::record("query_state in db no order mchid=$mchid mch_order=$mch_order", Log::DEBUG);
 
                     $insert['code'] = 202;
                     $insert['msg'] = "检索充值中的单子,查不到任何订单信息.";
                     $mod_qerr->add($insert);
 
-                    return [201, []];
-                } else {
+                    $detail = $detail_checker($mchid,$mch_order);
+                    if($detail == false) {
+                        return [201, []];
+                    }
+                    else {
+                        return [200, $send];
+                    }
+                }
+                else
+                {
                     Log::record("DEBUG_TAG: query_state in db mchid=$mchid mch_order=$mch_order order_state not completed.", Log::DEBUG);
 
 
@@ -50,11 +69,7 @@ trait BridgeTrait
                     $insert['msg'] = "检索充值中的单子能查到,但inner_status=0时查不到,回调充值中状态.";
                     $mod_qerr->add($insert);
 
-                    $result['mchid'] = $mchid;
-                    $result['order_sn'] = $mch_order;
-                    $result['order_state'] = ORDER_STATE_SEND;
-
-                    return [200, $result];
+                    return [200, $send];
                 }
             }
             else
@@ -71,11 +86,7 @@ trait BridgeTrait
                     $insert['msg'] = "检索充值中的单子能查到,但inner_status=0时查不到vr_order中的订单.";
                     $mod_qerr->add($insert);
 
-                    $result['mchid'] = $mchid;
-                    $result['order_sn'] = $mch_order;
-                    $result['order_state'] = ORDER_STATE_SEND;
-
-                    return [200, $result];
+                    return [200, $send];
                 } else {
                     $result = $this->format($order_info, $refill_info);
                     return [200, $result];

+ 9 - 12
helper/rbridge/gy/Bridge.php

@@ -82,7 +82,6 @@ class Bridge implements IBridge, IBridgeEx
         return $xml->asXML();
     }
 
-
     private function sign($input, $names, $secure_key)
     {
         $result = [];
@@ -101,22 +100,21 @@ class Bridge implements IBridge, IBridgeEx
         return $result;
     }
 
-
     private function check($mchinfo, $input, $names): array
     {
         if ($mchinfo['merchant_state'] != 1) {
             return [false, 6]; //代理商不存在
         }
 
-        $ips = unserialize($mchinfo['ip_white_list']);
-        if(!empty($ips))
-        {
-            $addr = $_SERVER['REMOTE_ADDR'];
-            if(!in_array($addr,$ips)) {
-                Log::record("request ip:$addr", Log::DEBUG);
-                return [false, 12]; //未知错误
-            }
-        }
+//        $ips = unserialize($mchinfo['ip_white_list']);
+//        if(!empty($ips))
+//        {
+//            $addr = $_SERVER['REMOTE_ADDR'];
+//            if(!in_array($addr,$ips)) {
+//                Log::record("request ip:$addr", Log::DEBUG);
+//                return [false, 12]; //未知错误
+//            }
+//        }
 
         $usekey = intval($mchinfo['use_key']);
         $key = $mchinfo['secure_key'];
@@ -242,7 +240,6 @@ class Bridge implements IBridge, IBridgeEx
         return [false, $this->result_format($params, $out_names, $secure_key)];
     }
 
-
     public function notify($params)
     {
         $out_names = ['order_id', 'request_id', 'telephone', 'money', 'result'];

BIN
helper/rbridge/gy/协议.pdf


+ 4 - 4
test/TestRBridge.php

@@ -161,6 +161,7 @@ class TestRBridge extends TestCase
         [$detail_id,$info] = $detail_id_getter(10234,'5a095fd33955c4ef941f04e9307c4845');
     }
 
+    //gao yang test
     public function testGyAdd()
     {
         $signer = function ($params,$names)
@@ -210,7 +211,7 @@ class TestRBridge extends TestCase
 
         $params = [
             'userid' => 10234,
-            'request_id' => '5a095fd33955c4ef941f04e9307c4845',
+            'request_id' => '60871702829743177981',
         ];
         $names = ['userid','request_id'];
 
@@ -251,7 +252,7 @@ class TestRBridge extends TestCase
     public function testXML()
     {
         $xml = new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8"?><root></root>');
-        $ar2xml = function ($obj, $array)
+        $ar2xml = function ($obj, $array) use(&$ar2xml)
         {
             foreach ($array as $k => $v)
             {
@@ -259,7 +260,7 @@ class TestRBridge extends TestCase
                     $k = 'item' . $k;
                 if(is_array($v)){
                     $node = $obj->addChild($k);
-                    arrayToXml($node, $v);
+                    $ar2xml($node, $v);
                 }else{
                     $obj->addChild($k, htmlspecialchars($v));
                 }
@@ -282,7 +283,6 @@ class TestRBridge extends TestCase
 
     public static function arrayToXml($obj, $array)
     {
-
         foreach ($array as $k => $v)
         {
             if (is_numeric($k))