1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?php
 
namespace app\common\library\easywechat\wx;
 
/**
 * 直播房间
 */
class WxOrder extends WxBase
{
    /**
     * 上传物流单号
     */
    public function uploadExpress($params_arr)
    {
        // 获取 access token 实例
        $accessToken = $this->app->getAccessToken();
        $token = $accessToken->getToken();
        // 微信接口url
        $apiUrl = "https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token={$token['access_token']}";
 
        $params = json_encode($params_arr, JSON_UNESCAPED_UNICODE);
        // 执行请求
        $result = $this->post($apiUrl, $params);
        // 返回结果
        $response = $this->jsonDecode($result);
        log_write('==uploadExpress=======================');
        log_write($response);
        if (!isset($response['errcode'])) {
            $this->error = '请求错误';
            return false;
        }
        if ($response['errcode'] != 0) {
            if ($response['errcode'] == '9410000') {
                $this->error = 'empty';
            } else {
                if ($response['errcode'] == 40001) {
                    //防止token过期或更换,重新获取
                    $accessToken->getToken(true);
                }
                $this->error = $response['errmsg'];
            }
            return false;
        }
        return true;
    }
 
    /**
     * 确认收货
     */
    public function confirmOrder()
    {
        // 获取 access token 实例
        $accessToken = $this->app->access_token;
        $token = $accessToken->getToken();
        // 微信接口url
        $apiUrl = "https://api.weixin.qq.com/wxa/business/getliveinfo?access_token={$token['access_token']}";
        // 请求参数
        $params = json_encode(['start' => 0, 'limit' => 100], JSON_UNESCAPED_UNICODE);
        // 执行请求
        $result = $this->post($apiUrl, $params);
        // 返回结果
        $response = $this->jsonDecode($result);
        if (!isset($response['errcode'])) {
            $this->error = '请求错误';
            return false;
        }
        if ($response['errcode'] != 0) {
            if ($response['errcode'] == '9410000') {
                $this->error = 'empty';
            } else {
                if ($response['errcode'] == 40001) {
                    //防止token过期或更换,重新获取
                    $accessToken->getToken(true);
                }
                $this->error = $response['errmsg'];
            }
 
            return false;
        }
        return $response;
    }
 
    /**
     * 查询物流公司
     */
    public function getExpress()
    {
        // 获取 access token 实例
        $accessToken = $this->app->access_token;
        $token = $accessToken->getToken();
        // 微信接口url
        $apiUrl = "https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/get_delivery_list?access_token={$token['access_token']}";
        // 请求参数
        $params = "{}";
        // 执行请求
        $result = $this->post($apiUrl, $params);
        // 返回结果
        $response = $this->jsonDecode($result);
        if (!isset($response['errcode'])) {
            $this->error = '请求错误';
            return false;
        }
        if ($response['errcode'] != 0) {
            if ($response['errcode'] == '9410000') {
                $this->error = 'empty';
            } else {
                if ($response['errcode'] == 40001) {
                    //防止token过期或更换,重新获取
                    $accessToken->getToken(true);
                }
                $this->error = $response['errmsg'];
            }
            return false;
        } else {
            return $response['delivery_list'];
        }
 
    }
}