From de1f3730041fc4cc90ca4a45a4bbea41111a254d Mon Sep 17 00:00:00 2001 From: Gosowong <1329847115@qq.com> Date: Tue, 16 May 2023 15:27:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=94=B9=E5=B0=8F=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E8=AE=A2=E5=8D=95=E5=8F=82=E6=95=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../easywechat/orderShipping/BaseOrder.php | 74 ++++++++++++++++++- .../easywechat/orderShipping/OrderClient.php | 12 +-- 2 files changed, 78 insertions(+), 8 deletions(-) diff --git a/crmeb/crmeb/services/easywechat/orderShipping/BaseOrder.php b/crmeb/crmeb/services/easywechat/orderShipping/BaseOrder.php index 955a749b5..599c22d13 100644 --- a/crmeb/crmeb/services/easywechat/orderShipping/BaseOrder.php +++ b/crmeb/crmeb/services/easywechat/orderShipping/BaseOrder.php @@ -12,6 +12,7 @@ class BaseOrder extends AbstractAPI { public $config; + public $accessToken; const BASE_API = 'https://api.weixin.qq.com/'; @@ -23,6 +24,7 @@ class BaseOrder extends AbstractAPI { parent::__construct($accessToken); $this->config = $config; + $this->accessToken = $accessToken; } private function resultHandle(Collection $result) @@ -38,6 +40,73 @@ class BaseOrder extends AbstractAPI } } + + /** + * request. + * + * @param string $endpoint + * @param string $method + * @param array $options + * @param bool $returnResponse + */ + public function request(string $method, string $endpoint, array $options = []) + { + + if (isset($options['json'])) { + $body = json_encode($options['json']); + $options['body'] = $body; + unset($options['json']); + } + + $headers = [ + 'Content-Type' => 'text/plain', + 'User-Agent' => 'curl', + 'Accept' => 'text/plain', + ]; + + $options['headers'] = array_merge($headers, ($options['headers'] ?? [])); + + + return $this->_doRequestCurl($method, self::BASE_API . $endpoint, $options); + } + + /** + * @param $method + * @param $location + * @param array $options + * @return mixed + */ + private function _doRequestCurl($method, $location, $options = []) + { + //拼接$accessToken + $location .= $this->accessToken->getToken(); + var_dump($location); + $curl = curl_init(); + // POST数据设置 + if (strtolower($method) === 'post') { + curl_setopt($curl, CURLOPT_POST, true); + curl_setopt($curl, CURLOPT_POSTFIELDS, $options['data'] ?? $options['body'] ?? ''); + } + // CURL头信息设置 + if (!empty($options['headers'])) { + $headers = []; + foreach ($options['headers'] as $k => $v) { + $headers[] = "$k: $v"; + } + curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); + } + curl_setopt($curl, CURLOPT_URL, $location); + curl_setopt($curl, CURLOPT_HEADER, true); + curl_setopt($curl, CURLOPT_TIMEOUT, 60); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); + curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); + $content = curl_exec($curl); + $headerSize = curl_getinfo($curl, CURLINFO_HEADER_SIZE); + curl_close($curl); + return json_decode(substr($content, $headerSize), true); + } + /** * 发货 * @param $params @@ -49,8 +118,7 @@ class BaseOrder extends AbstractAPI */ public function shipping($params) { - return $this->resultHandle($this->parseJSON('POST', [self::BASE_API . self::ORDER . 'upload_shipping_info', json_encode($params)])); - + return $this->resultHandle($this->parseJSON('POST', [self::BASE_API . self::ORDER . 'upload_shipping_info', json_encode($params, JSON_UNESCAPED_UNICODE)])); } /** @@ -126,6 +194,6 @@ class BaseOrder extends AbstractAPI */ public function getDeliveryList() { - return $this->resultHandle($this->parseJSON('POST', [self::BASE_API . self::EXPRESS . 'get_delivery_list'])); + return $this->resultHandle($this->parseJSON('POST', [self::BASE_API . self::EXPRESS . 'get_delivery_list', "{}"])); } } diff --git a/crmeb/crmeb/services/easywechat/orderShipping/OrderClient.php b/crmeb/crmeb/services/easywechat/orderShipping/OrderClient.php index fe383c80d..774da617d 100644 --- a/crmeb/crmeb/services/easywechat/orderShipping/OrderClient.php +++ b/crmeb/crmeb/services/easywechat/orderShipping/OrderClient.php @@ -70,9 +70,11 @@ class OrderClient extends BaseOrder */ public function shippingByTradeNo(string $out_trade_no, int $logistics_type, array $shipping_list, string $payer_openid, int $delivery_mode = 1, bool $is_all_delivered = true) { - if (!$this->checkManaged()) { - throw new AdminException('开通小程序订单管理服务后重试'); - } +// $this->setMesJumpPath('demo'); + +// if (!$this->checkManaged()) { +// throw new AdminException('开通小程序订单管理服务后重试'); +// } $params = [ @@ -234,7 +236,7 @@ class OrderClient extends BaseOrder $list = $this->getDeliveryList(); if ($list) { $key = self::redis_prefix . '_delivery_list'; - $date = array_column($list, 'delivery_id', 'delivery_name'); + $date = array_column($list['delivery_list'], 'delivery_id', 'delivery_name'); // 创建缓存 $this->getRedis()->hMSet($key, $date); @@ -263,7 +265,7 @@ class OrderClient extends BaseOrder } $express_company = $date[$company_name]; } else { - $express_company = $this->getRedis()->hMGet($key, $company_name); + $express_company = $this->getRedis()->hMGet($key, [$company_name])[$company_name] ?? ''; } if (empty($express_company)) { throw new AdminException('物流公司异常2');