Explorar el Código

小程序查询确认

shish hace 1 año
padre
commit
f992b7c3bb
Se han modificado 2 ficheros con 163 adiciones y 8 borrados
  1. 22 8
      app-ghs/controllers/TestController.php
  2. 141 0
      common/components/shippingUtil.php

+ 22 - 8
app-ghs/controllers/TestController.php

@@ -28,6 +28,7 @@ use common\components\lakala\Lakala;
 use common\components\miniUtil;
 use common\components\noticeUtil;
 use common\components\orderSn;
+use common\components\shippingUtil;
 use common\components\wxUtil;
 use common\components\payUtil;
 use Yii;
@@ -39,7 +40,7 @@ use wkhtmltox\Image\Converter;
 class TestController extends BaseController
 {
 
-    public $guestAccess = ['fx', 'on', 'in', 'clear-query', 'ip', 'html', 'debt', 'apply', 'clear', 'ls-trade-query','ls-trade-refund', 'refund-query', 'inform', 'notice', 'order-query', 'add-order', 'index', 'get', 'trade-query', 'query', 'balance-query', 'refund','recharge-query'];
+    public $guestAccess = ['fx', 'on', 'in', 'clear-query', 'ip', 'html', 'debt', 'apply', 'clear', 'ls-trade-query', 'ls-trade-refund', 'refund-query', 'inform', 'notice', 'order-query', 'add-order', 'index', 'get', 'trade-query', 'query', 'balance-query', 'refund', 'recharge-query'];
 
     public function actionFx()
     {
@@ -76,12 +77,25 @@ class TestController extends BaseController
     public function actionOn()
     {
         $merchant = WxOpenClass::getGhsWxInfo();
-        $miniAppId = $merchant['miniAppId'];
-        $wxAppId = $merchant['wxAppId'];
-        $openAppId = $merchant['openAppId'];
-        $ret = expressUtil::getAllDelivery($merchant,2);
+        $ptStyle = dict::getDict('ptStyle', 'ghs');
+        if (getenv('YII_ENV') == 'production') {
+            $appId = 'wxcf32b3f0684c2433';
+        } else {
+            $appId = 'wx21b7c3ef12082099';
+        }
+        $data = [
+            'appid' => $appId,
+        ];
+
+        //查询小程序是否已开通发货信息管理服务
+        $res = shippingUtil::isTradeManage($merchant, $data, $ptStyle);
+        echo '<pre>';
+        print_r($res);
+
+        //查询小程序是否已完成交易结算管理确认
+        $ret = shippingUtil::isTradeManageConfirmComplete($merchant, $data, $ptStyle);
+        echo '<pre>';
         print_r($ret);
-        die;
     }
 
     public function actionIn()
@@ -704,10 +718,10 @@ class TestController extends BaseController
         }
         $orderSn = 'KD26615540';
         $orderInfo = ClassesOrderClass::getByCondition(['orderSn' => $orderSn], true);
-        if(!empty($orderInfo)){
+        if (!empty($orderInfo)) {
             util::stop('有订单,不能走这个退款渠道');
         }
-        $order = ['orderSn' => $orderSn,'actPrice' => 55];
+        $order = ['orderSn' => $orderSn, 'actPrice' => 55];
         $respond = HdRefundClass::onlyRefundAmount($shop, $order);
         echo "<pre>";
         print_r($respond);

+ 141 - 0
common/components/shippingUtil.php

@@ -0,0 +1,141 @@
+<?php
+
+namespace common\components;
+
+use Yii;
+use yii\helpers\Json;
+use linslin\yii2\curl;
+
+/**
+ * 微信小程序发货信息管理服务-核心接口工具类
+ * 仅封装图片中列出的接口,风格参考 expressUtil.php
+ */
+class shippingUtil
+{
+    public static function getAccessToken($merchant, $ptStyle = 0)
+    {
+        return miniUtil::getMiniProgramAccessToken($merchant, $ptStyle);
+    }
+
+    /**
+     * 发货信息录入接口
+     * https://api.weixin.qq.com/wxa/sec/order/shipping?access_token=ACCESS_TOKEN
+     */
+    public static function shipping($merchant, $data, $ptStyle = 0)
+    {
+        $accessToken = self::getAccessToken($merchant, $ptStyle);
+        $url = "https://api.weixin.qq.com/wxa/sec/order/shipping?access_token={$accessToken}";
+        $curl = new curl\Curl();
+        $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
+        return Json::decode($result);
+    }
+
+    /**
+     * 发货信息合单录入接口
+     * https://api.weixin.qq.com/wxa/sec/order/shippingcombine?access_token=ACCESS_TOKEN
+     */
+    public static function shippingCombine($merchant, $data, $ptStyle = 0)
+    {
+        $accessToken = self::getAccessToken($merchant, $ptStyle);
+        $url = "https://api.weixin.qq.com/wxa/sec/order/shippingcombine?access_token={$accessToken}";
+        $curl = new curl\Curl();
+        $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
+        return Json::decode($result);
+    }
+
+    /**
+     * 查询订单发货状态
+     * https://api.weixin.qq.com/wxa/sec/order/getshippinginfo?access_token=ACCESS_TOKEN
+     */
+    public static function getShippingInfo($merchant, $data, $ptStyle = 0)
+    {
+        $accessToken = self::getAccessToken($merchant, $ptStyle);
+        $url = "https://api.weixin.qq.com/wxa/sec/order/getshippinginfo?access_token={$accessToken}";
+        $curl = new curl\Curl();
+        $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
+        return Json::decode($result);
+    }
+
+    /**
+     * 查询订单列表
+     * https://api.weixin.qq.com/wxa/sec/order/getorderlist?access_token=ACCESS_TOKEN
+     */
+    public static function getOrderList($merchant, $data, $ptStyle = 0)
+    {
+        $accessToken = self::getAccessToken($merchant, $ptStyle);
+        $url = "https://api.weixin.qq.com/wxa/sec/order/getorderlist?access_token={$accessToken}";
+        $curl = new curl\Curl();
+        $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
+        return Json::decode($result);
+    }
+
+    /**
+     * 确认收货提醒接口
+     * https://api.weixin.qq.com/wxa/sec/order/confirmreceivemsg?access_token=ACCESS_TOKEN
+     */
+    public static function confirmReceiveMsg($merchant, $data, $ptStyle = 0)
+    {
+        $accessToken = self::getAccessToken($merchant, $ptStyle);
+        $url = "https://api.weixin.qq.com/wxa/sec/order/confirmreceivemsg?access_token={$accessToken}";
+        $curl = new curl\Curl();
+        $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
+        return Json::decode($result);
+    }
+
+    /**
+     * 消息跳转路径设置接口
+     * https://api.weixin.qq.com/wxa/sec/order/setmsgjump?access_token=ACCESS_TOKEN
+     */
+    public static function setMsgJump($merchant, $data, $ptStyle = 0)
+    {
+        $accessToken = self::getAccessToken($merchant, $ptStyle);
+        $url = "https://api.weixin.qq.com/wxa/sec/order/setmsgjump?access_token={$accessToken}";
+        $curl = new curl\Curl();
+        $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
+        return Json::decode($result);
+    }
+
+    /**
+     * 查询小程序是否已开通发货信息管理服务
+     */
+    public static function isTradeManage($merchant, $data = [], $ptStyle = 0)
+    {
+        $accessToken = self::getAccessToken($merchant, $ptStyle);
+        $url = "https://api.weixin.qq.com/wxa/sec/order/is_trade_managed?access_token={$accessToken}";
+        $curl = new curl\Curl();
+        $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
+        return Json::decode($result);
+    }
+
+    /**
+     * 查询小程序是否已完成交易结算管理确认
+     */
+    public static function isTradeManageConfirmComplete($merchant, $data = [], $ptStyle = 0)
+    {
+        $accessToken = self::getAccessToken($merchant, $ptStyle);
+        $url = "https://api.weixin.qq.com/wxa/sec/order/is_trade_management_confirmation_completed?access_token={$accessToken}";
+        $curl = new curl\Curl();
+        $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
+        return Json::decode($result);
+    }
+
+    /**
+     * 相关消息推送(无需主动调用,文档留档)
+     * 仅做占位说明
+     */
+    // public static function messagePush() {}
+
+    /**
+     * 特殊发货报备
+     * https://api.weixin.qq.com/wxa/sec/order/opspecialorder?access_token=ACCESS_TOKEN
+     */
+    public static function opSpecialOrder($merchant, $data, $ptStyle = 0)
+    {
+        $accessToken = self::getAccessToken($merchant, $ptStyle);
+        $url = "https://api.weixin.qq.com/wxa/sec/order/opspecialorder?access_token={$accessToken}";
+        $curl = new curl\Curl();
+        $result = $curl->setOption(CURLOPT_POSTFIELDS, Json::encode($data))->post($url);
+        return Json::decode($result);
+    }
+
+}