diff --git a/src/Foundation/ServiceProviders/MiniProgramServiceProvider.php b/src/Foundation/ServiceProviders/MiniProgramServiceProvider.php index 3be365d07..e4c6e61de 100644 --- a/src/Foundation/ServiceProviders/MiniProgramServiceProvider.php +++ b/src/Foundation/ServiceProviders/MiniProgramServiceProvider.php @@ -34,6 +34,7 @@ use EasyWeChat\MiniProgram\Stats\Stats; use EasyWeChat\MiniProgram\SubscribeMessage\SubscribeMessage; use EasyWeChat\MiniProgram\Transactions\AfterSale\AfterSale; +use EasyWeChat\MiniProgram\Transactions\AfterSale\EcAfterSale; use EasyWeChat\MiniProgram\Transactions\Coupon\Coupon; use EasyWeChat\MiniProgram\Transactions\Delivery\Delivery; use EasyWeChat\MiniProgram\Transactions\Order\Order; @@ -130,6 +131,12 @@ public function register(Container $pimple) $pimple['config']['mini_program'] ); }; + $pimple['mini_program.ecAftersale'] = function ($pimple) { + return new EcAfterSale( + $pimple['mini_program.access_token'], + $pimple['config']['mini_program'] + ); + }; $pimple['mini_program.coupon'] = function ($pimple) { return new Coupon( $pimple['mini_program.access_token'], diff --git a/src/MiniProgram/MiniProgram.php b/src/MiniProgram/MiniProgram.php index a694e1884..d1eb70dec 100644 --- a/src/MiniProgram/MiniProgram.php +++ b/src/MiniProgram/MiniProgram.php @@ -43,6 +43,7 @@ * @property \EasyWeChat\MiniProgram\Transactions\Spu\Product $product * @property \EasyWeChat\MiniProgram\Transactions\Delivery\Delivery $delivery * @property \EasyWeChat\MiniProgram\Transactions\AfterSale\AfterSale $aftersale + * @property \EasyWeChat\MiniProgram\Transactions\AfterSale\EcAfterSale $ecAftersale * @property \EasyWeChat\MiniProgram\Transactions\Coupon\Coupon $coupon */ class MiniProgram diff --git a/src/MiniProgram/Transactions/AfterSale/EcAfterSale.php b/src/MiniProgram/Transactions/AfterSale/EcAfterSale.php new file mode 100644 index 000000000..677924774 --- /dev/null +++ b/src/MiniProgram/Transactions/AfterSale/EcAfterSale.php @@ -0,0 +1,170 @@ +getStream(self::API_POST_SHOP_ADD, $params); + } + + /** + * 用户取消售后单 + * @param string $outAftersaleId + * @param string $aftersaleId + * @param string $openId + * @return \Psr\Http\Message\StreamInterface + */ + public function cancel(string $outAftersaleId, string $aftersaleId, string $openId) + { + $params = [ + "out_aftersale_id" => $outAftersaleId, + "aftersale_id" => $aftersaleId, + "openid" => $openId, + ]; + return $this->getStream(self::API_POST_SHOP_CANCEL, $params); + } + + /** + * 用户上传物流信息 + * @param string $outAftersaleId + * @param string $aftersaleId + * @param string $openId + * @param string $deliveryId + * @param string $waybillId + * @param string $deliveryName + * @return \Psr\Http\Message\StreamInterface + */ + public function uploadReturnInfo(string $outAftersaleId, string $aftersaleId, string $openId, string $deliveryId, string $waybillId, string $deliveryName) + { + $params = [ + "out_aftersale_id" => $outAftersaleId, + "aftersale_id" => $aftersaleId, + "openid" => $openId, + "delivery_id" => $deliveryId, + "waybill_id" => $waybillId, + "delivery_name" => $deliveryName, + ]; + return $this->getStream(self::API_POST_SHOP_UPLOAD_RETURNINFO, $params); + } + + /** + * 获取售后单详情 + * @param string $outAftersaleId + * @param string $aftersaleId + * @return \Psr\Http\Message\StreamInterface + */ + public function get(string $outAftersaleId, string $aftersaleId) + { + $params = [ + "out_aftersale_id" => $outAftersaleId, + "aftersale_id" => $aftersaleId, + ]; + return $this->getStream(self::API_POST_SHOP_GET, $params); + } + + /** + * 获取售后单列表 + * @param array $params + * @return \Psr\Http\Message\StreamInterface + */ + public function getList(array $params) + { + return $this->getStream(self::API_POST_SHOP_GET_LIST, $params); + } + + /** + * 同意退款 + * @param string $outAftersaleId + * @return \Psr\Http\Message\StreamInterface + */ + public function acceptRefund(string $outAftersaleId) + { + $params = [ + "out_aftersale_id" => $outAftersaleId, + ]; + return $this->getStream(self::API_POST_SHOP_ACCEPT_REFUND, $params); + } + + /** + * 同意退货 + * @param array $params + * @return \Psr\Http\Message\StreamInterface + */ + public function acceptReturn(array $params) + { + return $this->getStream(self::API_POST_SHOP_ACCEPT_RETURN, $params); + } + + /** + * 拒绝售后 + * @param string $aftersaleId + * @return \Psr\Http\Message\StreamInterface + */ + public function reject(string $aftersaleId) + { + $params = [ + "aftersale_id" => $aftersaleId, + ]; + return $this->getStream(self::API_POST_SHOP_REJECT, $params); + } + + /** + * 上传退款凭证 + * @param array $params + * @return \Psr\Http\Message\StreamInterface + */ + public function uploadCertificates(array $params) + { + return $this->getStream(self::API_POST_SHOP_UPLOAD_CERTIFICATES, $params); + } + + /** + * 更新售后单 + * @param array $params + * @return \Psr\Http\Message\StreamInterface + */ + public function update(array $params) + { + return $this->getStream(self::API_POST_SHOP_UPDATE, $params); + } + + /** + * Get stream. + * + * @param string $endpoint + * @param array $params + * + * @return \Psr\Http\Message\StreamInterface + */ + protected function getStream($endpoint, $params) + { + return json_decode(strval($this->getHttp() + ->json($endpoint, $params)->getBody()), true); + } +} \ No newline at end of file diff --git a/src/MiniProgram/Transactions/Order/Order.php b/src/MiniProgram/Transactions/Order/Order.php index c90a13703..6ce808992 100644 --- a/src/MiniProgram/Transactions/Order/Order.php +++ b/src/MiniProgram/Transactions/Order/Order.php @@ -22,6 +22,7 @@ class Order extends AbstractMiniProgram const API_POST_ORDER_GET_LIST = 'https://api.weixin.qq.com/shop/order/get_list'; const API_POST_ORDER_BY_FINDER = 'https://api.weixin.qq.com/shop/order/get_list_by_finder'; const API_POST_ORDER_BY_SHARE = 'https://api.weixin.qq.com/shop/order/get_list_by_sharer'; + const API_POST_ORDER_PARAMS = 'https://api.weixin.qq.com/shop/order/getpaymentparams'; /** 获取场景 @@ -111,6 +112,22 @@ public function orders(array $params) return $this->getStream(self::API_POST_ORDER_GET_LIST, $params); } + /** 生成支付参数 + * @param string $orderId + * @param string $outOrderId + * @param string $openId + * @return \Psr\Http\Message\StreamInterface + */ + public function getPaymentParams(string $openId, string $orderId = "", string $outOrderId = "") + { + $params = [ + "order_id" => $orderId, + "out_order_id" => $outOrderId, + "openid" => $openId + ]; + return $this->getStream(self::API_POST_ORDER_PARAMS, $params); + } + /** * Get stream. *