Explorar el Código

xc provider and providers query update

ayHaru hace 4 años
padre
commit
eda07f4663

+ 6 - 0
helper/refill/RefillFactory.php

@@ -48,6 +48,12 @@ require_once(BASE_HELPER_PATH . '/refill/saihu/RefillCallBack.php');
 require_once(BASE_HELPER_PATH . '/refill/yifa/RefillPhone.php');
 require_once(BASE_HELPER_PATH . '/refill/yifa/RefillCallBack.php');
 
+require_once(BASE_HELPER_PATH . '/refill/jc/RefillPhone.php');
+require_once(BASE_HELPER_PATH . '/refill/jc/RefillCallBack.php');
+
+require_once(BASE_HELPER_PATH . '/refill/xc/RefillPhone.php');
+require_once(BASE_HELPER_PATH . '/refill/xc/RefillCallBack.php');
+
 use Log;
 use mtopcard;
 use QueueClient;

+ 6 - 16
helper/refill/bjb/RefillPhone.php

@@ -49,28 +49,18 @@ class RefillPhone extends refill\IRefillPhone
     }
     public function query($refill_info)
     {
-        $params['order_number'] = $refill_info['ch_trade_no'];
-        $params['tradeNo'] = $refill_info['order_sn'];
-
-        $time = time();
-        $api_user_name = config::API_USER_NAME;
-        $sign = $this->sign($time);
-
-        $header = [
-            'Content-Type: application/json',
-            "API-USER-NAME: {$api_user_name}",
-            "API-NAME: OrderQuery",
-            "API-TIMESTAMP: {$time}",
-            "API-SIGNATURE: {$sign}",
-        ];
-        $resp = http_post_data(config::REQUEST_URL,json_encode($params),$header);
+        $params['ord'] = $refill_info['order_sn'];
+        $params['usr'] = config::USR;
+        $content = $params['usr'] . $params['ord'] . config::KEY;
+        $params['sgn'] = strtoupper(md5($content));
+        $resp = http_request(config::QUERY_URL,$params);
         if($resp === false) {
             return [false,'系统错误'];
         }
         else
         {
             Log::record($resp,Log::DEBUG);
-            $resp = json_decode($resp,true);
+            $resp = explode('|' , $resp);
             if($resp['ack'] == 'success') {
                 return [true,$resp['message']];
             }

+ 1 - 0
helper/refill/bjb/config.php

@@ -7,6 +7,7 @@ namespace refill\bjb;
 class config
 {
     const PAY_PHONE_URL = 'http://47.96.37.53:806/webInface/PayPhone.ashx';
+    const QUERY_URL= 'http://47.96.37.53/webInface/GetOrderState.ashx';
     const USR= '13699279618';
     const KEY = 'd2dba2c0870b03a21ffd59df9c0cc774';
     const API_IP = NET_IP;

+ 12 - 1
helper/refill/suhc/RefillOil.php

@@ -93,7 +93,18 @@ class RefillOil extends refill\IRefillOil
             Log::record($resp,Log::DEBUG);
             $resp = json_decode($resp,true);
             if($resp['state'] == 0) {
-                return [true,$resp['data']];
+                $order_state = '';
+                if ($resp['status'] == 2) {
+                    $order_state = ORDER_STATE_SUCCESS;
+                } elseif ($resp['status'] == 3) {
+                    $order_state = ORDER_STATE_CANCEL;
+                } elseif ($resp['status'] == 0){
+                    $order_state = ORDER_STATE_SEND;
+                }
+                if (empty($order_state)) {
+                    return [false, $resp['data']];
+                }
+                return [true, $order_state];
             }
             else {
                 return [false,$resp['msg']];

+ 7 - 6
helper/refill/xc/RefillCallBack.php

@@ -23,17 +23,17 @@ class RefillCallBack implements refill\IRefillCallBack
     {
         $body[] = $params['wt_orderid'];
         $body[] = $params['Pay_iphone'];
-        $body[] = $params['wt_orderid'];
+        $body[] = $params['Pay_orderid'];
         $body[] = $params['Pay_money'];
 
         ksort($body);
         $str = '';
         foreach ($body as $key => $vo){
-            $str .= $vo . '&';
+            $str .= "{$key}={$vo}&";
         }
-        $str = strtolower(md5(rtrim($str,'&')));
+        $str = md5($str);
         $content = $str . config::KEY;
-        return strtolower(md5($content));
+        return md5($content);
     }
 
     public function notify($params)
@@ -44,9 +44,10 @@ class RefillCallBack implements refill\IRefillCallBack
         if(empty($order_info)) {
             return [false,false];
         }
-
         $order_id = $order_info['order_id'];
-        if($status === 1 || $status === 2) {
+        $data['official_sn'] = $params['wt_orderid'];
+        Model('refill_order')->edit($order_id, $data);
+        if($status === 1) {
             return [$order_id,true];
         } else {
             return [$order_id,false];

+ 30 - 28
helper/refill/xc/RefillPhone.php

@@ -15,16 +15,11 @@ class RefillPhone extends refill\IRefillPhone
 
     private function req_params(int $phone, int $amount ,string $order_sn)
     {
-//        $params['pay_iphone'] = $phone;
-//        $params['pay_orderid'] = $order_sn;
-//        $params['pay_memberid'] = config::NUMBER_ID;
-//        $params['pay_money'] = $amount;
-//        $params['pay_notify'] = config::NOTIFY_URL;
-        $params['pay_iphone'] = 1;
-        $params['pay_orderid'] = 520;
-        $params['pay_memberid'] = 10002;
-        $params['pay_money'] = 30;
-        $params['pay_notify'] = 'www.baidu.com';
+        $params['pay_iphone'] = $phone;
+        $params['pay_orderid'] = $order_sn;
+        $params['pay_memberid'] = config::NUMBER_ID;
+        $params['pay_money'] = $amount;
+        $params['pay_notify'] = config::NOTIFY_URL;
         return $params;
     }
 
@@ -42,7 +37,7 @@ class RefillPhone extends refill\IRefillPhone
         {
             Log::record($resp,Log::DEBUG);
             $resp = json_decode($resp,true);
-            if($resp['code'] == 200 && $resp['result'] == 'success') {
+            if($resp['code'] == 200 && $resp['result'] == 'SUCCESS') {
                 return [true,$resp['result']];
             }
             else {
@@ -51,13 +46,13 @@ class RefillPhone extends refill\IRefillPhone
         }
     }
 
-    public function OrderQuery($order_number,$tradeNo){
-        $params['order_number'] = $order_number;
+    public function query($refill_info){
+        $params['pay_orderid'] = $refill_info['order_sn'];
         $params['pay_memberid'] = config::NUMBER_ID;
-        $sign = $this->sign($params);
-
+        $sign = $this->sign($params,true);
+        $params['sign'] = $sign;
 
-        $resp = http_post_data(config::QUERY_ORDER_URL,$params);
+        $resp = http_request(config::QUERY_ORDER_URL,$params,'POST');
         if($resp === false) {
             return [false,'系统错误'];
         }
@@ -65,25 +60,32 @@ class RefillPhone extends refill\IRefillPhone
         {
             Log::record($resp,Log::DEBUG);
             $resp = json_decode($resp,true);
-            if($resp['ack'] == 'success') {
-                return [true,$resp['message']];
+            $order_state = '';
+            if ($resp['status'] == 1) {
+                $order_state = ORDER_STATE_SUCCESS;
+            } elseif ($resp['status'] == 2) {
+                $order_state = ORDER_STATE_CANCEL;
+            } elseif ($resp['status'] == 6){
+                $order_state = ORDER_STATE_SEND;
             }
-            else {
-                return [false,$resp['message']];
+            if (empty($order_state)) {
+                return [false, $resp['data']];
             }
+            return [true, $order_state];
         }
     }
 
-    private function sign($params)
+    private function sign($params , $encrypt = false)
     {
         ksort($params);
-        $str = '';
-        foreach ($params as $value){
-            $str .= $value;
+        $content = '';
+        foreach ($params as $key => $val){
+            $content .= "{$key}={$val}&";
         }
-
-        $str = md5($str);
-        $content = $str . config::KEY;
-        return md5($content);
+        if($encrypt){
+            $content = md5($content);
+        }
+        $str = $content . config::KEY;
+        return md5($str);
     }
 }

+ 2 - 2
helper/refill/xc/config.php

@@ -7,8 +7,8 @@ namespace refill\xc;
 class config
 {
     const ORDER_URL = 'http://180.215.207.83/pay/order/upload';
-    const QUERY_ORDER_URL = 'http://180.215.207.83/api/order/queryStatus';
+    const QUERY_ORDER_URL = 'http://180.215.207.83/chaxun/order/queryStatus';
     const NUMBER_ID= '10019';
     const KEY = '346ab585a7cbeccd4f11e54ffaf5fe1c';
-    const NOTIFY_URL = "https://www.xyzshops.cn/mobile/refill_xc.php";
+    const NOTIFY_URL = "https://www.xyzshops.cn/mobile/signature.php";
 }

+ 23 - 0
helper/refill/zzx/RefillOil.php

@@ -70,6 +70,29 @@ class RefillOil extends refill\IRefillOil
 
     public function query($refill_info)
     {
+        $params['mid'] = config::MID;
+        $params['orderNum'] = $refill_info['order_sn'];
+        $params['sign'] = $this->sign($params);
 
+        $resp = http_post_data(config::QUERY_URL,json_encode($params),config::ExtHeaders);
+        if($resp === false) {
+            return [false,'系统错误'];
+        }
+        else {
+            Log::record($resp,Log::DEBUG);
+            $resp = json_decode($resp,true);
+            $order_state = '';
+            if ($resp['code'] == 0000) {
+                $order_state = ORDER_STATE_SUCCESS;
+            } elseif ($resp['code'] == 0004) {
+                $order_state = ORDER_STATE_CANCEL;
+            } elseif ($resp['code'] == 0005){
+                $order_state = ORDER_STATE_SEND;
+            }
+            if (empty($order_state)) {
+                return [false, $resp['msg']];
+            }
+            return [true, $order_state];
+        }
     }
 }

+ 1 - 0
helper/refill/zzx/config.php

@@ -7,6 +7,7 @@ namespace refill\zzx;
 class config
 {
     const ORDER_URL = 'http://bank.daoken.club/youka/trade/order';
+    const QUERY_URL = 'http://bank.daoken.club/youka/trade/orderInfo';
     const MID = 1344178203820990464;
     const KEY = 'c9c74dcb886e403fb8abc62dadaedd86';
 

+ 12 - 0
test/TestRefill.php

@@ -81,6 +81,18 @@ class TestRefill extends TestCase
             }
         }
     }
+
+    public function testXcPhone(){
+        $providers = new refill\xc\RefillPhone([]);
+        $resp = $providers->add(18500608333, 5, 100, ['order_sn' => $this->make_sn()]);
+    }
+
+    public function testXcQuery(){
+        $providers = new refill\xc\RefillPhone([]);
+        $refill_info = ['order_sn' => 950663423236726632 , 'ch_trade_no' => 499 , 'card_no' => 	1000111200005252927	];
+        $resp = $providers->query($refill_info);
+    }
+
     public function testSuhcQuery(){
         $providers = new refill\suhctm\RefillOil([]);
         $refill_info = ['order_sn' => 950663423236726632 , 'ch_trade_no' => 499 , 'card_no' => 	1000111200005252927	];