直接使用微信接口肯定是不靠谱的,太麻烦,我这里使用的第三方封装库,项目地址:https://github.com/Wechat-Group/WxJava。
遇到的问题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字段有长度限制,多了一个字!!!
最后,终于成功了!
创建会员卡成功