|
@@ -1,4 +1,5 @@
|
|
|
<?php
|
|
|
+
|
|
|
namespace app\store\service\wxApi;
|
|
|
|
|
|
use app\common\service\BaseService;
|
|
@@ -20,22 +21,23 @@ class WxOrderLogistics extends BaseService
|
|
|
* @param $trackingNo
|
|
|
* @param $goodsDesc
|
|
|
* @param $payerOpenId
|
|
|
- * @param $consignorContact
|
|
|
+ * @param $consignorContact
|
|
|
* @param $receiverContact
|
|
|
+ * @param $logisticsType 物流模式,发货方式枚举值:1、实体物流配送采用快递公司进行实体物流配送形式 2、同城配送 3、虚拟商品,虚拟商品,例如话费充值,点卡等,无实体配送形式 4、用户自提
|
|
|
* @return object
|
|
|
*/
|
|
|
- public static function orderDeliveryByTransId($orderTransId, $expressCompany, $trackingNo, $goodsDesc, $payerOpenId, $consignorContact, $receiverContact)
|
|
|
+ public static function orderDeliveryByTransId($orderTransId, $expressCompany, $trackingNo, $goodsDesc, $payerOpenId, $consignorContact, $receiverContact, $logisticsType = 1)
|
|
|
{
|
|
|
$weixinToken = MpWxService::weixinTokenCache();
|
|
|
$accessToken = $weixinToken['access_token'];
|
|
|
- $url = "https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=".$accessToken;
|
|
|
+ $url = "https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=" . $accessToken;
|
|
|
|
|
|
$params['access_token'] = $accessToken;
|
|
|
$params['order_key'] = [
|
|
|
'order_number_type' => 2,
|
|
|
'transaction_id' => $orderTransId,
|
|
|
];
|
|
|
- $params['logistics_type'] = 1;
|
|
|
+ $params['logistics_type'] = $logisticsType;
|
|
|
$params['delivery_mode'] = 1;
|
|
|
$params['is_all_delivered'] = true;
|
|
|
|
|
@@ -48,23 +50,22 @@ class WxOrderLogistics extends BaseService
|
|
|
if ($consignorContact != null || $receiverContact != null) {
|
|
|
$shippingInfo['contact'] = [];
|
|
|
if ($consignorContact != null) {
|
|
|
- $shippingInfo['contact']['consignor_contact'] = $consignorContact;
|
|
|
+ $shippingInfo['contact']['consignor_contact'] = $consignorContact;
|
|
|
}
|
|
|
|
|
|
if ($receiverContact != null) {
|
|
|
- $shippingInfo['contact']['receiver_contact'] = $receiverContact;
|
|
|
+ $shippingInfo['contact']['receiver_contact'] = $receiverContact;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
$params['shipping_list'] = [$shippingInfo];
|
|
|
|
|
|
$nowStr = date('Y-m-d H:i:s');
|
|
|
- $data = explode(' ',$nowStr);
|
|
|
- $params['upload_time'] = $data[0].'T'.$data[1].'.000+08:00';
|
|
|
+ $data = explode(' ', $nowStr);
|
|
|
+ $params['upload_time'] = $data[0] . 'T' . $data[1] . '.000+08:00';
|
|
|
$params['payer'] = [
|
|
|
'openid' => $payerOpenId
|
|
|
];
|
|
|
- dd($params);
|
|
|
$ret = curl_post($url, json_encode($params));
|
|
|
$arr = json_decode($ret);
|
|
|
|
|
@@ -83,11 +84,11 @@ class WxOrderLogistics extends BaseService
|
|
|
* @param $receiverContact
|
|
|
* @return object
|
|
|
*/
|
|
|
- public static function orderDeliveryByOutTradeNo($storeId,$outTradeNo, $expressCompany, $trackingNo, $goodsDesc, $payerOpenId, $consignorContact, $receiverContact)
|
|
|
+ public static function orderDeliveryByOutTradeNo($storeId, $outTradeNo, $expressCompany, $trackingNo, $goodsDesc, $payerOpenId, $consignorContact, $receiverContact)
|
|
|
{
|
|
|
$weixinToken = MpWxService::weixinTokenCache();
|
|
|
$accessToken = $weixinToken['access_token'];
|
|
|
- $url = "https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=".$accessToken;
|
|
|
+ $url = "https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=" . $accessToken;
|
|
|
|
|
|
$params['access_token'] = $accessToken;
|
|
|
|
|
@@ -98,7 +99,7 @@ class WxOrderLogistics extends BaseService
|
|
|
'mchid' => $wxConfig['mchid'],
|
|
|
'out_trade_no' => $outTradeNo,
|
|
|
];
|
|
|
- $params['logistics_type'] = 1;
|
|
|
+ $params['logistics_type'] = 1;
|
|
|
$params['delivery_mode'] = 1;
|
|
|
$params['is_all_delivered'] = true;
|
|
|
|
|
@@ -111,11 +112,11 @@ class WxOrderLogistics extends BaseService
|
|
|
if ($consignorContact != null || $receiverContact != null) {
|
|
|
$shippingInfo['contact'] = [];
|
|
|
if ($consignorContact != null) {
|
|
|
- $shippingInfo['contact']['consignor_contact'] = $consignorContact;
|
|
|
+ $shippingInfo['contact']['consignor_contact'] = $consignorContact;
|
|
|
}
|
|
|
|
|
|
if ($receiverContact != null) {
|
|
|
- $shippingInfo['contact']['receiver_contact'] = $receiverContact;
|
|
|
+ $shippingInfo['contact']['receiver_contact'] = $receiverContact;
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -123,7 +124,7 @@ class WxOrderLogistics extends BaseService
|
|
|
|
|
|
$nowStr = date('Y-m-d H:i:s');
|
|
|
$data = explode($nowStr, ' ');
|
|
|
- $params['upload_time'] = $data[0].'T'.$data[1].'.000+08:00';
|
|
|
+ $params['upload_time'] = $data[0] . 'T' . $data[1] . '.000+08:00';
|
|
|
$params['payer'] = [
|
|
|
'openid' => $payerOpenId
|
|
|
];
|
|
@@ -139,10 +140,11 @@ class WxOrderLogistics extends BaseService
|
|
|
* @param $transId
|
|
|
* @return object
|
|
|
*/
|
|
|
- public static function getOrderStatusByTransId($transId) {
|
|
|
+ public static function getOrderStatusByTransId($transId)
|
|
|
+ {
|
|
|
$weixinToken = MpWxService::weixinTokenCache();
|
|
|
$accessToken = $weixinToken['access_token'];
|
|
|
- $url = "https://api.weixin.qq.com/wxa/sec/order/get_order?access_token=".$accessToken;
|
|
|
+ $url = "https://api.weixin.qq.com/wxa/sec/order/get_order?access_token=" . $accessToken;
|
|
|
|
|
|
//$params['access_token'] = $accessToken;
|
|
|
|
|
@@ -154,16 +156,17 @@ class WxOrderLogistics extends BaseService
|
|
|
return $arr;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
+ /**
|
|
|
* 根据outTradeNo获得订单状态,状态字段:order_state:订单状态枚举:(1) 待发货;(2) 已发货;(3) 确认收货;(4) 交易完成;(5) 已退款。
|
|
|
* @param $storeId
|
|
|
* @param $outTradeNo
|
|
|
* @return object
|
|
|
*/
|
|
|
- public static function getOrderStatusByOutTradeNo($storeId, $outTradeNo) {
|
|
|
+ public static function getOrderStatusByOutTradeNo($storeId, $outTradeNo)
|
|
|
+ {
|
|
|
$weixinToken = MpWxService::weixinTokenCache();
|
|
|
$accessToken = $weixinToken['access_token'];
|
|
|
- $url = "https://api.weixin.qq.com/wxa/sec/order/get_order?access_token=".$accessToken;
|
|
|
+ $url = "https://api.weixin.qq.com/wxa/sec/order/get_order?access_token=" . $accessToken;
|
|
|
|
|
|
$params['access_token'] = $accessToken;
|
|
|
$wxConfig = WxappModel::getWxappCache($storeId);
|
|
@@ -176,23 +179,25 @@ class WxOrderLogistics extends BaseService
|
|
|
return $arr;
|
|
|
}
|
|
|
|
|
|
- public static function getDeliveryList(){
|
|
|
+ public static function getDeliveryList()
|
|
|
+ {
|
|
|
$weixinToken = MpWxService::weixinTokenCache();
|
|
|
$accessToken = $weixinToken['access_token'];
|
|
|
- $url = 'https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/get_delivery_list?access_token='.$accessToken;
|
|
|
+ $url = 'https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/get_delivery_list?access_token=' . $accessToken;
|
|
|
//$params = [];
|
|
|
Log::info($url);
|
|
|
$ret = curl_post($url, '{}');
|
|
|
return json_decode($ret);
|
|
|
}
|
|
|
|
|
|
- public static function isTradeManaged($storeId){
|
|
|
+ public static function isTradeManaged($storeId)
|
|
|
+ {
|
|
|
$weixinToken = MpWxService::weixinTokenCache();
|
|
|
$accessToken = $weixinToken['access_token'];
|
|
|
- $url = 'https://api.weixin.qq.com/wxa/sec/order/is_trade_managed?access_token='.$accessToken;
|
|
|
+ $url = 'https://api.weixin.qq.com/wxa/sec/order/is_trade_managed?access_token=' . $accessToken;
|
|
|
$wxConfig = WxappModel::getWxappCache($storeId);
|
|
|
|
|
|
- $params = ['appid'=>$wxConfig['app_id']];
|
|
|
+ $params = ['appid' => $wxConfig['app_id']];
|
|
|
$ret = curl_post($url, json_encode($params));
|
|
|
return json_decode($ret);
|
|
|
}
|