1.官方文档有详细的教程
https://developers.weixin.qq.com/doc/offiaccount/Cards_and_Offer/WeChat_Coupon_Interface.html
2.开发流程如下
3.引入js 文件:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
4.配置config(获取授权jsapi_ticket, 进行签名 ):凑齐如下数据
5.通过接口上传logo(注意的是采用缓存上传传入的图片是本地路径):https://developers.weixin.qq.com/doc/offiaccount/Cards_and_Offer/Create_a_Coupon_Voucher_or_Card.html
6.通过接口 创建卡包获取cardId:如下样式,具体字段意思官方有介绍认真找一下。
{
"card": {
"card_type": "MEMBER_CARD",
"member_card": {
"background_pic_url": "http://mmbiz.qpic.cn/mmbiz_jpg/iaRuxfPLLfMIFkJkt1Dev9T3hjkvP9ibCYCnmxGv8iaUicBd7aD37eSlFl7MJrKFoYu9tHxibMSyrqwKBV03R5UJecw/0",
"base_info": {
"logo_url": "http://mmbiz.qpic.cn/mmbiz_jpg/iaRuxfPLLfMIFkJkt1Dev9T3hjkvP9ibCYCnmxGv8iaUicBd7aD37eSlFl7MJrKFoYu9tHxibMSyrqwKBV03R5UJecw/0",
"brand_name": "旺猫游乐场",
"code_type": "CODE_TYPE_QRCODE",
"title": "会员卡",
"color": "Color030",
"notice": "使用时向服务员会员码",
"service_phone": "020-31562342",
"description": "请出示会员码扣费",
"date_info": {
"type": "DATE_TYPE_PERMANENT"
},
"sku": {
"quantity": 50000000
},
"use_custom_code": true,
"can_give_friend": false,
"location_id_list": [
123,
12321
],
"custom_url_name": "立即使用",
"custom_url": "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx1a818f15db1e5022&redirect_uri=http%3a%2f%2fcloud.ecardplay.com%2fYouPosOnLineMember%2f&response_type=code&scope=snsapi_userinfo&state=63f8a3d2-55e9-4304-a21c-a0aebe80bedd#wechat_redirect",
"custom_url_sub_title": "",
"need_push_on_view": true
},
"supply_bonus": false,
"supply_balance": false,
"prerogative": "会员等级不同享受不同的折扣",
"auto_activate": true,
"discount": 10
}
}
}
6.调用wx.addCard方法
注意的是签名这里, 官方给的示例是有误的,需要 通过工具生成去 推测签名字符串的排序。
将 api_ticket、timestamp、card_id、code、openid、nonce_str的value值进行字符串的字典序排序。
也就是他们的排序是不一定的,所以需要先判断排序,在组成字符串加密。
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#53