Skip to content

Commit b3eadb4

Browse files
authored
🆕 #2255 【小程序】增加自定义组件之接入商品前必需的接口
1 parent 5326c5b commit b3eadb4

File tree

11 files changed

+499
-0
lines changed

11 files changed

+499
-0
lines changed

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/WxMaService.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,13 @@ public interface WxMaService extends WxService {
433433
*/
434434
WxMaShopImgService getShopImgService();
435435

436+
/**
437+
* 小程序交易组件-接入商品前必需接口-审核相关接口
438+
*
439+
* @return
440+
*/
441+
WxMaShopAuditService getShopAuditService();
442+
436443
/**
437444
* 获取小程序 URL Link服务接口
438445
*
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package cn.binarywang.wx.miniapp.api;
2+
3+
import cn.binarywang.wx.miniapp.bean.shop.request.WxMaShopAuditBrandRequest;
4+
import cn.binarywang.wx.miniapp.bean.shop.request.WxMaShopAuditCategoryRequest;
5+
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopAuditBrandResponse;
6+
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopAuditCategoryResponse;
7+
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopAuditResultResponse;
8+
import com.google.gson.JsonObject;
9+
import me.chanjar.weixin.common.error.WxErrorException;
10+
11+
/**
12+
* 小程序交易组件-接入商品前必需接口(审核相关接口)
13+
*
14+
* @author liming1019
15+
* @date 2021/8/12
16+
*/
17+
public interface WxMaShopAuditService {
18+
/**
19+
* 上传品牌信息(品牌审核)
20+
*
21+
* @param request
22+
* @return WxMaShopAuditBrandResponse
23+
* @throws WxErrorException
24+
*/
25+
WxMaShopAuditBrandResponse auditBrand(WxMaShopAuditBrandRequest request) throws WxErrorException;
26+
27+
/**
28+
* 上传类目资质(类目审核)
29+
*
30+
* @param request
31+
* @return
32+
* @throws WxErrorException
33+
*/
34+
WxMaShopAuditCategoryResponse auditCategory(WxMaShopAuditCategoryRequest request) throws WxErrorException;
35+
36+
/**
37+
* 获取审核结果
38+
*
39+
* @param auditId
40+
* @return WxMaShopAuditResultResponse
41+
* @throws WxErrorException
42+
*/
43+
WxMaShopAuditResultResponse getAuditResult(String auditId) throws WxErrorException;
44+
45+
/**
46+
* 获取小程序提交过的入驻资质信息
47+
*
48+
* @param reqType
49+
* @return JsonObject
50+
* @throws WxErrorException
51+
*/
52+
JsonObject getMiniappCertificate(int reqType) throws WxErrorException;
53+
}

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/api/impl/BaseWxMaServiceImpl.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ public abstract class BaseWxMaServiceImpl<H, P> implements WxMaService, RequestH
6969
private final WxMaShopAccountService shopAccountService = new WxMaShopAccountServiceImpl(this);
7070
private final WxMaShopCatService shopCatService = new WxMaShopCatServiceImpl(this);
7171
private final WxMaShopImgService shopImgService = new WxMaShopImgServiceImpl(this);
72+
private final WxMaShopAuditService shopAuditService = new WxMaShopAuditServiceImpl(this);
7273
private final WxMaLinkService linkService = new WxMaLinkServiceImpl(this);
7374
private final WxMaReimburseInvoiceService reimburseInvoiceService = new WxMaReimburseInvoiceServiceImpl(this);
7475
private Map<String, WxMaConfig> configMap;
@@ -540,6 +541,11 @@ public WxMaShopImgService getShopImgService() {
540541
return this.shopImgService;
541542
}
542543

544+
@Override
545+
public WxMaShopAuditService getShopAuditService() {
546+
return this.shopAuditService;
547+
}
548+
543549
@Override
544550
public WxMaLinkService getLinkService() {
545551
return this.linkService;
Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
package cn.binarywang.wx.miniapp.api.impl;
2+
3+
import cn.binarywang.wx.miniapp.api.WxMaService;
4+
import cn.binarywang.wx.miniapp.api.WxMaShopAuditService;
5+
import cn.binarywang.wx.miniapp.bean.shop.request.WxMaShopAuditBrandRequest;
6+
import cn.binarywang.wx.miniapp.bean.shop.request.WxMaShopAuditCategoryRequest;
7+
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopAuditBrandResponse;
8+
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopAuditCategoryResponse;
9+
import cn.binarywang.wx.miniapp.bean.shop.response.WxMaShopAuditResultResponse;
10+
import cn.binarywang.wx.miniapp.json.WxMaGsonBuilder;
11+
import com.google.gson.JsonObject;
12+
import lombok.RequiredArgsConstructor;
13+
import lombok.extern.slf4j.Slf4j;
14+
import me.chanjar.weixin.common.enums.WxType;
15+
import me.chanjar.weixin.common.error.WxError;
16+
import me.chanjar.weixin.common.error.WxErrorException;
17+
import me.chanjar.weixin.common.util.json.GsonHelper;
18+
import me.chanjar.weixin.common.util.json.GsonParser;
19+
20+
import static cn.binarywang.wx.miniapp.constant.WxMaApiUrlConstants.Shop.Audit.*;
21+
import static cn.binarywang.wx.miniapp.constant.WxMaConstants.ERRCODE;
22+
23+
/**
24+
* 小程序交易组件-接入商品前必需接口(审核相关接口)
25+
*
26+
* @author liming1019
27+
* @date 2021/8/12
28+
*/
29+
@RequiredArgsConstructor
30+
@Slf4j
31+
public class WxMaShopAuditServiceImpl implements WxMaShopAuditService {
32+
private final WxMaService wxMaService;
33+
34+
/**
35+
* 上传品牌信息(品牌审核)
36+
*
37+
* @param request
38+
* @return WxMaShopAuditBrandResponse
39+
* @throws WxErrorException
40+
*/
41+
@Override
42+
public WxMaShopAuditBrandResponse auditBrand(WxMaShopAuditBrandRequest request) throws WxErrorException {
43+
String responseContent = this.wxMaService.post(AUDIT_BRAND, request);
44+
JsonObject jsonObject = GsonParser.parse(responseContent);
45+
if (jsonObject.get(ERRCODE).getAsInt() != 0) {
46+
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
47+
}
48+
return WxMaGsonBuilder.create().fromJson(responseContent, WxMaShopAuditBrandResponse.class);
49+
}
50+
51+
/**
52+
* 上传类目资质(类目审核)
53+
*
54+
* @param request
55+
* @return
56+
* @throws WxErrorException
57+
*/
58+
@Override
59+
public WxMaShopAuditCategoryResponse auditCategory(WxMaShopAuditCategoryRequest request) throws WxErrorException {
60+
String responseContent = this.wxMaService.post(AUDIT_CATEGORY, request);
61+
JsonObject jsonObject = GsonParser.parse(responseContent);
62+
if (jsonObject.get(ERRCODE).getAsInt() != 0) {
63+
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
64+
}
65+
return WxMaGsonBuilder.create().fromJson(responseContent, WxMaShopAuditCategoryResponse.class);
66+
}
67+
68+
/**
69+
* 获取审核结果
70+
*
71+
* @param auditId
72+
* @return WxMaShopAuditResultResponse
73+
* @throws WxErrorException
74+
*/
75+
@Override
76+
public WxMaShopAuditResultResponse getAuditResult(String auditId) throws WxErrorException {
77+
String responseContent = this.wxMaService.post(AUDIT_RESULT, GsonHelper.buildJsonObject("audit_id", auditId));
78+
JsonObject jsonObject = GsonParser.parse(responseContent);
79+
if (jsonObject.get(ERRCODE).getAsInt() != 0) {
80+
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
81+
}
82+
return WxMaGsonBuilder.create().fromJson(responseContent, WxMaShopAuditResultResponse.class);
83+
}
84+
85+
/**
86+
* 获取小程序提交过的入驻资质信息
87+
*
88+
* @param reqType
89+
* @return JsonObject
90+
* @throws WxErrorException
91+
*/
92+
@Override
93+
public JsonObject getMiniappCertificate(int reqType) throws WxErrorException {
94+
String responseContent = this.wxMaService.post(GET_MINIAPP_CERTIFICATE, GsonHelper.buildJsonObject("req_type", reqType));
95+
JsonObject jsonObject = GsonParser.parse(responseContent);
96+
if (jsonObject.get(ERRCODE).getAsInt() != 0) {
97+
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MiniApp));
98+
}
99+
return WxMaGsonBuilder.create().fromJson(responseContent, JsonObject.class);
100+
}
101+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
package cn.binarywang.wx.miniapp.bean.shop.request;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
7+
import java.io.Serializable;
8+
import java.util.List;
9+
10+
/**
11+
* @author liming1019
12+
* @date 2021/8/12
13+
*/
14+
@Data
15+
@Builder
16+
public class WxMaShopAuditBrandRequest implements Serializable {
17+
private static final long serialVersionUID = -969331692973992066L;
18+
19+
/**
20+
* audit_req : {"license":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"],"brand_info":{"brand_audit_type":1,"trademark_type":"29","brand_management_type":2,"commodity_origin_type":2,"brand_wording":"346225226351203275","sale_authorization":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"],"trademark_registration_certificate":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"],"trademark_change_certificate":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"],"trademark_registrant":"https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg","trademark_registrant_nu":"1249305","trademark_authorization_period":"2020-03-25 12:05:25","trademark_registration_application":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"],"trademark_applicant":"张三","trademark_application_time":"2020-03-25 12:05:25","imported_goods_form":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"]}}
21+
*/
22+
23+
@SerializedName("audit_req")
24+
private AuditReqBean auditReq;
25+
26+
@Data
27+
@Builder
28+
public static class AuditReqBean implements Serializable {
29+
/**
30+
* license : ["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"]
31+
* brand_info : {"brand_audit_type":1,"trademark_type":"29","brand_management_type":2,"commodity_origin_type":2,"brand_wording":"346225226351203275","sale_authorization":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"],"trademark_registration_certificate":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"],"trademark_change_certificate":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"],"trademark_registrant":"https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg","trademark_registrant_nu":"1249305","trademark_authorization_period":"2020-03-25 12:05:25","trademark_registration_application":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"],"trademark_applicant":"张三","trademark_application_time":"2020-03-25 12:05:25","imported_goods_form":["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"]}
32+
*/
33+
34+
@SerializedName("brand_info")
35+
private BrandInfoBean brandInfo;
36+
@SerializedName("license")
37+
private List<String> license;
38+
39+
@Data
40+
@Builder
41+
public static class BrandInfoBean implements Serializable {
42+
/**
43+
* brand_audit_type : 1
44+
* trademark_type : 29
45+
* brand_management_type : 2
46+
* commodity_origin_type : 2
47+
* brand_wording : 346225226351203275
48+
* sale_authorization : ["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"]
49+
* trademark_registration_certificate : ["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"]
50+
* trademark_change_certificate : ["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"]
51+
* trademark_registrant : https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg
52+
* trademark_registrant_nu : 1249305
53+
* trademark_authorization_period : 2020-03-25 12:05:25
54+
* trademark_registration_application : ["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"]
55+
* trademark_applicant : 张三
56+
* trademark_application_time : 2020-03-25 12:05:25
57+
* imported_goods_form : ["https://img.zhls.qq.com/3/609b98f7e0ff43d59ce6d9cca636c3e0.jpg"]
58+
*/
59+
60+
@SerializedName("brand_audit_type")
61+
private Integer brandAuditType;
62+
@SerializedName("trademark_type")
63+
private String trademarkType;
64+
@SerializedName("brand_management_type")
65+
private Integer brandManagementType;
66+
@SerializedName("commodity_origin_type")
67+
private Integer commodityOriginType;
68+
@SerializedName("brand_wording")
69+
private String brandWording;
70+
@SerializedName("trademark_registrant")
71+
private String trademarkRegistrant;
72+
@SerializedName("trademark_registrant_nu")
73+
private String trademarkRegistrantNu;
74+
@SerializedName("trademark_authorization_period")
75+
private String trademarkAuthorizationPeriod;
76+
@SerializedName("trademark_applicant")
77+
private String trademarkApplicant;
78+
@SerializedName("trademark_application_time")
79+
private String trademarkApplicationTime;
80+
@SerializedName("sale_authorization")
81+
private List<String> saleAuthorization;
82+
@SerializedName("trademark_registration_certificate")
83+
private List<String> trademarkRegistrationCertificate;
84+
@SerializedName("trademark_change_certificate")
85+
private List<String> trademarkChangeCertificate;
86+
@SerializedName("trademark_registration_application")
87+
private List<String> trademarkRegistrationApplication;
88+
@SerializedName("imported_goods_form")
89+
private List<String> importedGoodsForm;
90+
}
91+
}
92+
}
93+
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package cn.binarywang.wx.miniapp.bean.shop.request;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Builder;
5+
import lombok.Data;
6+
7+
import java.io.Serializable;
8+
import java.util.List;
9+
10+
/**
11+
* @author liming1019
12+
* @date 2021/8/12
13+
*/
14+
@Data
15+
@Builder
16+
public class WxMaShopAuditCategoryRequest implements Serializable {
17+
private static final long serialVersionUID = -6730876344556487071L;
18+
19+
/**
20+
* audit_req : {"license":["www.xxxxx.com"],"category_info":{"level1":7419,"level2":7439,"level3":7448,"certificate":["www.xxx.com"]}}
21+
*/
22+
23+
@SerializedName("audit_req")
24+
private AuditReqBean auditReq;
25+
26+
@Data
27+
@Builder
28+
public static class AuditReqBean implements Serializable {
29+
/**
30+
* license : ["www.xxxxx.com"]
31+
* category_info : {"level1":7419,"level2":7439,"level3":7448,"certificate":["www.xxx.com"]}
32+
*/
33+
34+
@SerializedName("category_info")
35+
private CategoryInfoBean categoryInfo;
36+
@SerializedName("license")
37+
private List<String> license;
38+
39+
@Data
40+
@Builder
41+
public static class CategoryInfoBean implements Serializable {
42+
/**
43+
* level1 : 7419
44+
* level2 : 7439
45+
* level3 : 7448
46+
* certificate : ["www.xxx.com"]
47+
*/
48+
49+
@SerializedName("level1")
50+
private Integer level1;
51+
@SerializedName("level2")
52+
private Integer level2;
53+
@SerializedName("level3")
54+
private Integer level3;
55+
@SerializedName("certificate")
56+
private List<String> certificate;
57+
}
58+
}
59+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package cn.binarywang.wx.miniapp.bean.shop.response;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
import lombok.EqualsAndHashCode;
6+
7+
import java.io.Serializable;
8+
9+
/**
10+
* @author liming1019
11+
* @date 2021/8/12
12+
*/
13+
@Data
14+
@EqualsAndHashCode(callSuper = true)
15+
public class WxMaShopAuditBrandResponse extends WxMaShopBaseResponse implements Serializable {
16+
private static final long serialVersionUID = -4643316662725276237L;
17+
18+
@SerializedName("audit_id")
19+
private String auditId;
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package cn.binarywang.wx.miniapp.bean.shop.response;
2+
3+
import com.google.gson.annotations.SerializedName;
4+
import lombok.Data;
5+
import lombok.EqualsAndHashCode;
6+
7+
import java.io.Serializable;
8+
9+
/**
10+
* @author liming1019
11+
* @date 2021/8/12
12+
*/
13+
@Data
14+
@EqualsAndHashCode(callSuper = true)
15+
public class WxMaShopAuditCategoryResponse extends WxMaShopBaseResponse implements Serializable {
16+
private static final long serialVersionUID = -1822188134865177738L;
17+
18+
@SerializedName("audit_id")
19+
private String auditId;
20+
}

0 commit comments

Comments
 (0)