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; } }