直接使用微信接口肯定是不靠谱的,太麻烦,我这里使用的第三方封装库,项目地址:https://github.com/Wechat-Group/WxJava。

遇到的问题

1、会员卡的颜色

微信开发文档地址(weixin-java-mp创建微信会员卡)(1)

返回值

我们从之前通过微信公众平台界面创建的微信会员卡返回的信息来看,color是这个值,但是,请求的时候不能这么写,不然会报错:

会员卡基本信息的卡颜色:#4B476A不支持

我们看下代码:me.chanjar.weixin.mp.bean.card.BaseInfo的源码:

/**

* 券颜色,按色彩规范标注填写Color010-Color100.

*/

@SerializedName("color")

private String color;

这里color必须设置为Color010这种形式。


2、使用WxMpMemberCardService而非WxMpCardService

我一开始弄错了一直使用WxMpCardService,浪费了很多时间。

@Autowired

private WxMpService wxMpService;

@Test

@SneakyThrows

public void createCard() {

wxMpCardService = wxMpService.getCardService();

wxMpMemberCardService = wxMpService.getMemberCardService();

...

...

}


3、错误代码:45021

错误信息:

错误代码:45021, 错误信息:some argument may be out of length limit! please check document and request json! hint: [OXNxJA0172r283] base.notice(),微信原始报文:{"errcode":45021,"errmsg":"some argument may be out of length limit! please check document and request json! hint: [OXNxJA0172r283] base.notice()"}

这个真悲催,查了好久,原因在这里:

baseInfo的notice字段有长度限制,多了一个字!!!


最后,终于成功了!

微信开发文档地址(weixin-java-mp创建微信会员卡)(2)

创建会员卡成功


微信开发文档地址(weixin-java-mp创建微信会员卡)(3)


微信开发文档地址(weixin-java-mp创建微信会员卡)(4)


,