xiaoyu 1 anno fa
parent
commit
2dc907864c

+ 35 - 0
helper/refill/api/xyz/jinfeng_youpin/RefillCallBack.php

@@ -0,0 +1,35 @@
+<?php
+namespace refill\jinfeng_youpin;
+
+require_once(BASE_HELPER_RAPI_PATH . '/jinfeng_youpin/config.php');
+
+use refill;
+class RefillCallBack implements refill\IRefillCallBack
+{
+    public function verify($params): bool
+    {
+       return true;
+    }
+
+    public function notify($params)
+    {
+        $status = $params['status'];
+        $order_sn = $params['otherNo'];
+
+        $order_info = Model('vr_order')->getOrderInfoForNotify(['order_sn' => $order_sn]);
+        if (empty($order_info)) {
+            return [false, false, false,false];
+        }
+
+        $order_id = $order_info['order_id'];
+        if ($status === 'success') {
+            $data['official_sn'] = strtolower($params['ext']) == 'null' ? '' : $params['ext'];
+            Model('refill_order')->edit($order_id, $data);
+            return [$order_id, true, false, true];
+        } elseif ($status === 'fail') {
+            return [$order_id, false, true, true];
+        } else {
+            return [$order_id, false, false, false];
+        }
+    }
+}

+ 122 - 0
helper/refill/api/xyz/jinfeng_youpin/RefillPhone.php

@@ -0,0 +1,122 @@
+<?php
+
+namespace refill\jinfeng_youpin;
+
+require_once(BASE_HELPER_RAPI_PATH . '/jinfeng_youpin/config.php');
+
+use refill;
+use Log;
+
+class RefillPhone extends refill\IRefillPhone
+{
+    public function __construct($cfgs)
+    {
+        parent::__construct($cfgs);
+    }
+
+    private function req_params(int $phone, int $card_type, $amount, string $order_sn)
+    {
+        $params['P0_biztype'] = 'mobiletopup';
+        $params['P1_agentcode'] = config::AGENT_CODE;
+        $params['P2_mobile'] = $phone;
+        $params['P3_parvalue'] = $amount;
+        $params['P4_productcode'] = config::operator[$card_type];
+        $params['P5_requestid'] = $order_sn;
+        $params['P6_callbackurl'] = config::NOTIFY_URL;
+        $params['P7_extendinfo'] = '';
+
+        return $params;
+    }
+
+    public function add($card_no, $card_type, $amount, $params,&$net_errno = 0)
+    {
+        $params = $this->req_params($card_no, $card_type, $amount, $params['order_sn']);
+
+        $sign = config::sign($params);
+        $params['hmac'] = $sign;
+
+        $resp = http_request(config::ORDER_URL, $params, 'POST', false, [], $net_errno);
+
+        if (empty($resp)) {
+            return [false, '系统错误', true];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+
+            if ($resp === '000000') {
+                return [true, '', false];
+            } elseif ($resp === '100029' || $resp === '100032') {
+                $net_errno = "HTTP-{$resp}";
+                return [false, $resp, true];
+            } else {
+                return [false, $resp, false];
+            }
+        }
+    }
+
+    public function query($refill_info)
+    {
+        $params['P1_agentcode'] = config::AGENT_CODE;
+        $params['P5_requestid'] = $refill_info['order_sn'];
+        $params['hmac'] = config::sign($params);
+
+        $resp = http_request(config::QUERY_URL, $params);
+        if (empty($resp)) {
+            return [false, '系统错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = explode('|', $resp);
+            if(empty($resp)) {
+                return [false, '系统错误'];
+            }
+            $code = $resp[0];
+            if ($code === '000000')
+            {
+                $status = $resp[5];
+                $order_state = ORDER_STATE_SEND;
+                if ($status === '2') {
+                    $order_state = ORDER_STATE_SUCCESS;
+                } elseif ($status === '6') {
+                    $order_state = ORDER_STATE_CANCEL;
+                }
+                return [true, $order_state];
+            }
+            elseif ($code === '300007' && (time() - $refill_info['commit_time'] > 600))
+            {
+                return [true, ORDER_STATE_NOEXIST];
+            }
+            else
+            {
+                return [false, $code];
+            }
+        }
+    }
+
+    public function balance()
+    {
+        $params['P1_agentcode'] = config::AGENT_CODE;
+        $params['hmac'] = config::sign($params);
+
+        $resp = http_request(config::BALANCE_URL, $params);
+        if (empty($resp)) {
+            return [false, '系统错误'];
+        }
+        else
+        {
+            Log::record($resp, Log::DEBUG);
+            $resp = explode('|', $resp);
+            if(empty($resp)) {
+                return [false, '系统错误'];
+            }
+            $code = $resp[0];
+            if ($code === '000000') {
+                return [true, $resp[2]];
+            } else {
+                return [false, $code];
+            }
+        }
+    }
+}

+ 32 - 0
helper/refill/api/xyz/jinfeng_youpin/config.php

@@ -0,0 +1,32 @@
+<?php
+
+
+namespace refill\jinfeng_youpin;
+
+use mtopcard;
+class config
+{
+    const ORDER_URL = 'http://czapi2.1jinb.net/youpintongAgentByInterfaceServlet';
+    const QUERY_URL= 'http://czapi2.1jinb.net/AgentNewQueryInterfaceServlet';
+    const BALANCE_URL = 'http://czapi2.1jinb.net/youpintongAgentBalanceInterfaceServlet';
+
+    const AGENT_CODE= 'BJGY202306271349';
+    const KEY = '4CD5FE85C3860CE1E9E7210154124905';
+//    const NOTIFY_URL = BASE_SITE_URL . "/mobile/callback/refill_jinfeng_youpin.php";
+    const NOTIFY_URL = "https://www.xyzshops.cn/mobile/signature.php";
+
+    const operator = [
+        mtopcard\ChinaMobileCard  => 'SHKC',
+        mtopcard\ChinaUnicomCard  => 'SHKC_CU',
+        mtopcard\ChinaTelecomCard => 'SHKC_CT'
+    ];
+
+    public static function sign($params)
+    {
+        $content = '';
+        foreach ($params as $value) {
+            $content .= "{$value}";
+        }
+        return hash_hmac('md5', $content, config::KEY);
+    }
+}

BIN
helper/refill/api/xyz/jinfeng_youpin/劲峰优品接口文档158.doc


+ 13 - 0
helper/refill/api/xyz/jinfeng_youpin/椰子.txt

@@ -0,0 +1,13 @@
+158
+提交订单地址: http://czapi2.1jinb.net/youpintongAgentByInterfaceServlet
+查询订单地址: http://czapi2.1jinb.net/AgentNewQueryInterfaceServlet
+查询余额地址: http://czapi2.1jinb.net/youpintongAgentBalanceInterfaceServlet
+登录地址:http://czapi2.1jinb.net/agent/ShowAgentManageServlet
+
+
+
+代理商编号:BJGY202306271349
+登陆名: guoyan
+密码:guoyan123456
+
+秘钥:4CD5FE85C3860CE1E9E7210154124905