123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- <?php
- namespace app\store\service\store;
- use app\common\service\BaseService;
- use app\common\service\MpWxService;
- use app\api\model\Wxapp as WxappModel;
- /**
- * 物流发货logic
- * Class WxOrderLogistics
- * @package app\store\service\wxApi
- */
- class WxOrderLogistics extends BaseService
- {
- /**
- * 发货订单信息,如果发货物流公司是顺丰,必须保证有发件人和收件人信息
- * @param $orderTransId
- * @param $expressCompany
- * @param $trackingNo
- * @param $goodsDesc
- * @param $payerOpenId
- * @param $consignorContact
- * @param $receiverContact
- * @return object
- */
- public static function orderDeliveryByTransId($orderTransId, $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;
- $params['access_token'] = $accessToken;
- $params['order_key'] = [
- 'order_number_type' => 2,
- 'transaction_id' => $orderTransId,
- ];
- $params['logistics_type'] = 1;
- $params['delivery_mode'] = 1;
- $params['is_all_delivered'] = true;
- $shippingInfo = [
- 'tracking_no' => $trackingNo,
- 'express_company' => $expressCompany,
- 'item_desc' => $goodsDesc,
- ];
- if ($consignorContact != null || $receiverContact != null) {
- $shippingInfo['contact'] = [];
- if ($consignorContact != null) {
- $shippingInfo['contact']['consignor_contact'] = $consignorContact;
- }
- if ($receiverContact != null) {
- $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';
- $params['payer'] = [
- 'openid' => $payerOpenId
- ];
- $ret = curl_post($url, json_encode($params));
- $arr = json_decode($ret);
- return $arr;
- }
- /**
- * 发货订单信息,如果发货物流公司是顺丰,必须保证有发件人和收件人信息
- * @param $outTradeNo
- * @param $expressCompany
- * @param $trackingNo
- * @param $goodsDesc
- * @param $payerOpenId
- * @param $consignorContact
- * @param $receiverContact
- * @return object
- */
- public static function orderDeliveryByOutTradeNo($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;
- $params['access_token'] = $accessToken;
- $mchId = WxappModel::getWxappCache($order['store_id']);
- $params['order_key'] = [
- 'order_number_type' => 1,
- 'mchid' => $mchId,
- 'out_trade_no' => $outTradeNo,
- ];
- $params['logistics_type'] = 1;
- $params['delivery_mode'] = 1;
- $params['is_all_delivered'] = true;
- $shippingInfo = [
- 'tracking_no' => $trackingNo,
- 'express_company' => $expressCompany,
- 'item_desc' => $goodsDesc,
- ];
- if ($consignorContact != null || $receiverContact != null) {
- $shippingInfo['contact'] = [];
- if ($consignorContact != null) {
- $shippingInfo['contact']['consignor_contact'] = $consignorContact;
- }
- if ($receiverContact != null) {
- $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';
- $params['payer'] = [
- 'openid' => $payerOpenId
- ];
- $ret = curl_post($url, json_encode($params));
- $arr = json_decode($ret);
- return $arr;
- }
- /**
- * 根据transId获得订单状态,状态字段:order_state:订单状态枚举:(1) 待发货;(2) 已发货;(3) 确认收货;(4) 交易完成;(5) 已退款。
- * @param $transId
- * @return object
- */
- 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;
- $params['access_token'] = $accessToken;
- $params['transaction_id'] = $transId;
- $ret = curl_post($url, json_encode($params));
- $arr = json_decode($ret);
- return $arr;
- }
- /**
- * 根据outTradeNo获得订单状态,状态字段:order_state:订单状态枚举:(1) 待发货;(2) 已发货;(3) 确认收货;(4) 交易完成;(5) 已退款。
- * @param $outTradeNo
- * @return object
- */
- public static function getOrderStatusByOutTradeNo($outTradeNo) {
- $weixinToken = MpWxService::weixinTokenCache();
- $accessToken = $weixinToken['access_token'];
- $url = "https://api.weixin.qq.com/wxa/sec/order/get_order?access_token=".$accessToken;
- $params['access_token'] = $accessToken;
- $mchId = WxappModel::getWxappCache($order['store_id']);
- $params['merchant_id'] = $mchId;
- $params['merchant_trade_no'] = $outTradeNo;
- $ret = curl_post($url, json_encode($params));
- $arr = json_decode($ret);
- return $arr;
- }
- }
|