goodsList;
+
+
+ /**
+ * 退货订单的金额(单位:分)
+ *
+ * 是否必填:是
+ *
+ */
+ @SerializedName("order_price")
+ private Integer orderPrice;
+
+
+
+ public String toJson() {
+ return WxMaGsonBuilder.create().toJson(this);
+ }
+
+}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressReturnOrder.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressReturnOrder.java
new file mode 100644
index 000000000..a6558beae
--- /dev/null
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/request/WxMaExpressReturnOrder.java
@@ -0,0 +1,40 @@
+package cn.binarywang.wx.miniapp.bean.express.request;
+
+import com.google.gson.annotations.SerializedName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ * 退货商品对象
+ * @author xiaoyu
+ * @since 2019-11-26
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class WxMaExpressReturnOrder implements Serializable {
+ private static final long serialVersionUID = -7798434835843377474L;
+
+ /**
+ * 商品名称
+ *
+ * 是否必填: 是
+ *
+ */
+ @SerializedName("name")
+ private String name;
+
+ /**
+ * 商品缩略图url
+ *
+ * 是否必填: 是
+ *
+ */
+ @SerializedName("url")
+ private String url;
+
+
+}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressInfoResult.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressInfoResult.java
new file mode 100644
index 000000000..9819c10d0
--- /dev/null
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressInfoResult.java
@@ -0,0 +1,19 @@
+package cn.binarywang.wx.miniapp.bean.express.result;
+
+import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
+
+public class WxMaExpressInfoResult {
+ /**
+ * 错误码
+ */
+ private Integer errcode;
+
+ /**
+ * 错误信息
+ */
+ private String errmsg;
+
+ public static WxMaExpressInfoResult fromJson(String json) {
+ return WxMaGsonBuilder.create().fromJson(json, WxMaExpressInfoResult.class);
+ }
+}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressOrderInfoResult.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressOrderInfoResult.java
index 9502eee82..275c2d093 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressOrderInfoResult.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressOrderInfoResult.java
@@ -23,19 +23,10 @@ import java.util.Map;
@Data
@NoArgsConstructor
@AllArgsConstructor
-public class WxMaExpressOrderInfoResult implements Serializable {
+public class WxMaExpressOrderInfoResult extends WxMaExpressInfoResult implements Serializable {
private static final long serialVersionUID = -9166603059965942285L;
- /**
- * 错误码
- */
- private Integer errcode;
-
- /**
- * 错误信息
- */
- private String errmsg;
/**
* 订单ID
*/
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressReturnInfoResult.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressReturnInfoResult.java
new file mode 100644
index 000000000..e97c03b6d
--- /dev/null
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/express/result/WxMaExpressReturnInfoResult.java
@@ -0,0 +1,68 @@
+package cn.binarywang.wx.miniapp.bean.express.result;
+
+import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
+import com.google.gson.annotations.SerializedName;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 运单信息返回结果对象
+ *
+ * @author xiaoyu
+ * @since 2019-11-26
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class WxMaExpressReturnInfoResult extends WxMaExpressInfoResult implements Serializable {
+
+ private static final long serialVersionUID = -9166603059965942285L;
+
+ /**
+ * 退货ID
+ */
+ @SerializedName("return_id")
+ private String returnId;
+
+
+ /**
+ * 0 用户未填写退货信息, 1. 在线预约, 2. 自主填写
+ */
+ private String status;
+
+
+ /**
+ * 运单ID
+ */
+ @SerializedName("waybill_id")
+ private String waybillId;
+
+ /**
+ * //0› 已下单待揽件 1› 已揽件 2› 运输中 3› 派件中 4› 已签收 5› 异常 6› 代签收 7› 揽收失败 8› 签收失败(拒收,超区) 11› 已取消 13› 退件中 14› 已退件 99 未知
+ */
+ @SerializedName("order_status")
+ private String orderStatus;
+
+ /**
+ * //运力公司名称
+ */
+ @SerializedName("delivery_name")
+ private String deliveryName;
+
+ /**
+ * //运力公司名称
+ */
+ @SerializedName("delivery_id")
+ private String deliveryId;
+
+
+
+ public static WxMaExpressReturnInfoResult fromJson(String json) {
+ return WxMaGsonBuilder.create().fromJson(json, WxMaExpressReturnInfoResult.class);
+ }
+
+}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java
index 23ea77388..e51879d8e 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/constant/WxMaApiUrlConstants.java
@@ -872,4 +872,18 @@ public class WxMaApiUrlConstants {
String QUERY_PUBLISH_GOODS_URL = "https://api.weixin.qq.com/xpay/query_publish_goods?pay_sig=%s";
}
+
+ /**
+ * 退货组件
+ *
+ * 文档地址:https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_sale_return.html
+ *
+ *
+ */
+ public interface ExpressDeliveryReturn{
+ String ADD_DELIVERY_RETURN_URL = "https://api.weixin.qq.com/cgi-bin/express/delivery/return/add";
+ String GET_DELIVERY_RETURN_URL = "https://api.weixin.qq.com/cgi-bin/express/delivery/return/get";
+ String UNBIND_DELIVERY_RETURN_URL = "https://api.weixin.qq.com/cgi-bin/express/delivery/return/unbind";
+ }
+
}
diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/test/ApiTestModule.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/test/ApiTestModule.java
index 5f3d19c02..26eec1fa6 100644
--- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/test/ApiTestModule.java
+++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/test/ApiTestModule.java
@@ -35,7 +35,7 @@ public class ApiTestModule implements Module {
binder.bind(WxMaService.class).toInstance(wxService);
binder.bind(WxMaConfig.class).toInstance(config);
- WxMaServiceOkHttpImpl wxMaServiceOkHttp = new cn.binarywang.wx.miniapp.api.impl.WxMaServiceOkHttpImpl();
+ WxMaServiceOkHttpImpl wxMaServiceOkHttp = new WxMaServiceOkHttpImpl();
wxMaServiceOkHttp.setWxMaConfig(config);
binder.bind(WxMaServiceOkHttpImpl.class).toInstance(wxMaServiceOkHttp);
diff --git a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/Applyment4SubServiceImplTest.java b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/Applyment4SubServiceImplTest.java
index 25c3ec09d..5f6f25801 100644
--- a/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/Applyment4SubServiceImplTest.java
+++ b/weixin-java-pay/src/test/java/com/github/binarywang/wxpay/service/impl/Applyment4SubServiceImplTest.java
@@ -25,27 +25,27 @@ public class Applyment4SubServiceImplTest {
@Test
public void testCreateApply() throws WxPayException {
- Applyment4SubService applyment4SubService=new Applyment4SubServiceImpl(wxPayService);
- String requestParamStr="{}";
+ Applyment4SubService applyment4SubService = new Applyment4SubServiceImpl(wxPayService);
+ String requestParamStr = "{}";
/*
{"business_code":"1596785690732","contact_info":{"contact_name":"张三","contact_id_number":"110110202001011234","mobile_phone":"13112345678","contact_email":"abc@qq.com"},"subject_info":{"subject_type":"SUBJECT_TYPE_ENTERPRISE","business_license_info":{"license_copy":"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI","license_number":"123456789012345678","merchant_name":"腾讯科技有限公司","legal_person":"张三"},"identity_info":{"id_doc_type":"IDENTIFICATION_TYPE_IDCARD","id_card_info":{"id_card_copy":"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI","id_card_national":"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI","id_card_name":"张三","id_card_number":"110110202001011234","card_period_begin":"2016-06-06","card_period_end":"2026-06-06"},"owner":false},"ubo_info":{"id_type":"IDENTIFICATION_TYPE_IDCARD","id_card_copy":"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI","id_card_national":"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI","id_doc_copy":"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI","name":"张三","id_number":"110110202001011234","id_period_begin":"2016-06-06","id_period_end":"2026-06-06"}},"business_info":{"merchant_shortname":"商户简称","service_phone":"13212345678","sales_info":{"sales_scenes_type":["SALES_SCENES_MINI_PROGRAM"],"mini_program_info":{"mini_program_appid":"wxe5f52902cf4de896"}}},"settlement_info":{"settlement_id":"716","qualification_type":"餐饮"}}
*/
- requestParamStr="{\"business_code\":\"1596785690732\",\"contact_info\":{\"contact_name\":\"张三\",\"contact_id_number\":\"110110202001011234\",\"mobile_phone\":\"13112345678\",\"contact_email\":\"abc@qq.com\"},\"subject_info\":{\"subject_type\":\"SUBJECT_TYPE_ENTERPRISE\",\"business_license_info\":{\"license_copy\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"license_number\":\"123456789012345678\",\"merchant_name\":\"腾讯科技有限公司\",\"legal_person\":\"张三\"},\"identity_info\":{\"id_doc_type\":\"IDENTIFICATION_TYPE_IDCARD\",\"id_card_info\":{\"id_card_copy\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"id_card_national\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"id_card_name\":\"张三\",\"id_card_number\":\"110110202001011234\",\"card_period_begin\":\"2016-06-06\",\"card_period_end\":\"2026-06-06\"},\"owner\":false},\"ubo_info\":{\"id_type\":\"IDENTIFICATION_TYPE_IDCARD\",\"id_card_copy\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"id_card_national\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"id_doc_copy\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"name\":\"张三\",\"id_number\":\"110110202001011234\",\"id_period_begin\":\"2016-06-06\",\"id_period_end\":\"2026-06-06\"}},\"business_info\":{\"merchant_shortname\":\"商户简称\",\"service_phone\":\"13212345678\",\"sales_info\":{\"sales_scenes_type\":[\"SALES_SCENES_MINI_PROGRAM\"],\"mini_program_info\":{\"mini_program_appid\":\"wxe5f52902cf4de896\"}}},\"settlement_info\":{\"settlement_id\":\"716\",\"qualification_type\":\"餐饮\"}}";
+ requestParamStr = "{\"business_code\":\"1596785690732\",\"contact_info\":{\"contact_name\":\"张三\",\"contact_id_number\":\"110110202001011234\",\"mobile_phone\":\"13112345678\",\"contact_email\":\"abc@qq.com\"},\"subject_info\":{\"subject_type\":\"SUBJECT_TYPE_ENTERPRISE\",\"business_license_info\":{\"license_copy\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"license_number\":\"123456789012345678\",\"merchant_name\":\"腾讯科技有限公司\",\"legal_person\":\"张三\"},\"identity_info\":{\"id_doc_type\":\"IDENTIFICATION_TYPE_IDCARD\",\"id_card_info\":{\"id_card_copy\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"id_card_national\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"id_card_name\":\"张三\",\"id_card_number\":\"110110202001011234\",\"card_period_begin\":\"2016-06-06\",\"card_period_end\":\"2026-06-06\"},\"owner\":false},\"ubo_info\":{\"id_type\":\"IDENTIFICATION_TYPE_IDCARD\",\"id_card_copy\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"id_card_national\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"id_doc_copy\":\"mxX07DyfM-bJyGJYCTyW-4wrXpJ5fq_bgYfWkIZZgjenf6Ct1gKV_FpkzgyQrf5ETVEyOWhC_0cbhOATODuLBAkxGl6Cvj31lh6OFAIHnwI\",\"name\":\"张三\",\"id_number\":\"110110202001011234\",\"id_period_begin\":\"2016-06-06\",\"id_period_end\":\"2026-06-06\"}},\"business_info\":{\"merchant_shortname\":\"商户简称\",\"service_phone\":\"13212345678\",\"sales_info\":{\"sales_scenes_type\":[\"SALES_SCENES_MINI_PROGRAM\"],\"mini_program_info\":{\"mini_program_appid\":\"wxe5f52902cf4de896\"}}},\"settlement_info\":{\"settlement_id\":\"716\",\"qualification_type\":\"餐饮\"}}";
- WxPayApplyment4SubCreateRequest request=GSON.fromJson(requestParamStr,WxPayApplyment4SubCreateRequest.class);
+ WxPayApplyment4SubCreateRequest request = GSON.fromJson(requestParamStr, WxPayApplyment4SubCreateRequest.class);
String businessCode = String.valueOf(System.currentTimeMillis());
request.setBusinessCode(businessCode);
WxPayApplymentCreateResult apply = applyment4SubService.createApply(request);
String applymentId = apply.getApplymentId();
- log.info("businessCode:[{}],applymentId:[{}]",businessCode,applymentId);
+ log.info("businessCode:[{}],applymentId:[{}]", businessCode, applymentId);
}
@Test
public void testQueryApplyStatusByBusinessCode() throws WxPayException {
- Applyment4SubService applyment4SubService=new Applyment4SubServiceImpl(wxPayService);
- String businessCode="businessCode";
+ Applyment4SubService applyment4SubService = new Applyment4SubServiceImpl(wxPayService);
+ String businessCode = "businessCode";
applyment4SubService.queryApplyStatusByBusinessCode(businessCode);
@@ -54,8 +54,8 @@ public class Applyment4SubServiceImplTest {
@Test
public void testQueryApplyStatusByApplymentId() throws WxPayException {
- Applyment4SubService applyment4SubService=new Applyment4SubServiceImpl(wxPayService);
- String applymentId="applymentId";
+ Applyment4SubService applyment4SubService = new Applyment4SubServiceImpl(wxPayService);
+ String applymentId = "applymentId";
applyment4SubService.queryApplyStatusByApplymentId(applymentId);
@@ -63,8 +63,8 @@ public class Applyment4SubServiceImplTest {
@Test
public void testQuerySettlementBySubMchid() throws WxPayException {
- Applyment4SubService applyment4SubService=new Applyment4SubServiceImpl(wxPayService);
- String subMchid="subMchid";
+ Applyment4SubService applyment4SubService = new Applyment4SubServiceImpl(wxPayService);
+ String subMchid = "subMchid";
applyment4SubService.querySettlementBySubMchid(subMchid);
@@ -72,22 +72,21 @@ public class Applyment4SubServiceImplTest {
@Test
public void testModifySettlement() throws WxPayException {
- Applyment4SubService applyment4SubService=new Applyment4SubServiceImpl(wxPayService);
- String subMchid="subMchid";
+ Applyment4SubService applyment4SubService = new Applyment4SubServiceImpl(wxPayService);
+ String subMchid = "subMchid";
ModifySettlementRequest modifySettlementRequest = new ModifySettlementRequest();
- applyment4SubService.modifySettlement(subMchid,modifySettlementRequest);
+ applyment4SubService.modifySettlement(subMchid, modifySettlementRequest);
}
@Test
- public void testSettlementApplication() throws WxPayException{
- Applyment4SubService applyment4SubService=new Applyment4SubServiceImpl(wxPayService);
- String subMchid="subMchid";
- String applymentId="applymentId";
+ public void testSettlementApplication() throws WxPayException {
+ Applyment4SubService applyment4SubService = new Applyment4SubServiceImpl(wxPayService);
+ String subMchid = "subMchid";
+ String applymentId = "applymentId";
- applyment4SubService.settlementApplication(subMchid, applymentId);
+ applyment4SubService.querySettlementModifyStatusByApplicationNo(subMchid, applymentId);
}
-
}