1:先获取ACCESS_TOKEN
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
请求方式为GET请求
2:调用创卡接口
https://api.weixin.qq.com/card/create?access_token=ACCESS_TOKEN
请求方式POST,参数需要进行封装
这里的建卡接口返回“cardId”,将用于后续的领卡操作
POST请求数据示例
{
"card": {
"card_type": "MEMBER_CARD",
"member_card": {
"background_pic_url": "https://mmbiz.qlogo.cn/mmbiz/",
"base_info": {
"logo_url": "http://mmbiz.qpic.cn/mmbiz/iaL1LJM1mF9aRKPZ/0",
"brand_name": "卡名",
"code_type": "CODE_TYPE_TEXT",
"title": "会员卡",
"color": "Color010",
"notice": "使用时向服务员出示此券",
"service_phone": "020-88888888",
"description": "不可与其他优惠同享",
"date_info": {
"type": "DATE_TYPE_PERMANENT"
},
"sku": {
"quantity": 50000000
},
"get_limit": 3,
"use_custom_code": false,
"can_give_friend": true,
"location_id_list": [
123,
12321
],
"custom_url_name": "立即使用",
"custom_url": "http://weixin.qq.com",
"custom_url_sub_title": "6个汉字tips",
"promotion_url_name": "营销入口1",
"promotion_url": "http://www.qq.com",
"need_push_on_view": true
},
"advanced_info": {
"use_condition": {
"accept_category": "商品类别",
"reject_category": "名称",
"can_use_with_other_discount": true
},
"abstract": {
"abstract": "微信餐厅推出多种新季菜品,期待您的光临",
"icon_url_list": [
"http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sj
piby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0"
]
},
"text_image_list": [
{
"image_url": "http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sjpiby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0",
"text": "此菜品精选食材,以独特的烹饪方法,最大程度地刺激食 客的味蕾"
},
{
"image_url": "http://mmbiz.qpic.cn/mmbiz/p98FjXy8LacgHxp3sJ3vn97bGLz0ib0Sfz1bjiaoOYA027iasqSG0sj piby4vce3AtaPu6cIhBHkt6IjlkY9YnDsfw/0",
"text": "此菜品迎合大众口味,老少皆宜,营养均衡"
}
],
"time_limit": [
{
"type": "MONDAY",
"begin_hour":0,
"end_hour":10,
"begin_minute":10,
"end_minute":59
},
{
"type": "HOLIDAY"
}
],
"business_service": [
"BIZ_SERVICE_FREE_WIFI",
"BIZ_SERVICE_WITH_PET",
"BIZ_SERVICE_FREE_PARK",
"BIZ_SERVICE_DELIVER"
]
},
"supply_bonus": true,
"supply_balance": false,
"prerogative": "test_prerogative",
"auto_activate": true,
"custom_field1": {
"name_type": "FIELD_NAME_TYPE_LEVEL",
"url": "http://www.qq.com"
},
"activate_url": "http://www.qq.com",
"custom_cell1": {
"name": "使用入口2",
"tips": "激活后显示",
"url": "http://www.qq.com"
},
"bonus_rule": {
"cost_money_unit": 100,
"increase_bonus": 1,
"max_increase_bonus": 200,
"init_increase_bonus": 10,
"cost_bonus_unit": 5,
"reduce_money": 100,
"least_money_to_use_bonus": 1000,
"max_reduce_bonus": 50
},
"discount": 10
}
}
}
页面情况
参数说明
参数名 | 必填 | 类型 | 描述 |
---|---|---|---|
card_type | 是 | string | 会员卡类型。 |
background_ pic_ur l | 否 | string(128) | 商家自定义会员卡背景图,须 先调用 上传图片接口 将背景图上传至CDN,否则报错, 卡面设计请遵循 微信会员卡自定义背景设计规范 ,像素大小控制在 1000像素*600像素以下 |
base_info | 是 | JSON | 基本的卡券数据,见下表,所有卡券类型通用。 |
prerogative | 是 | strin g(3072) | 会员卡特权说明,限制1024汉字。 |
auto_activate | 否 | bool | 设置为true时用户领取会员卡后系统自动将其激活,无需调用激活接口,详情见 自动激活 。 |
wx_activate | 否 | bool | 设置为true时会员卡支持一键开卡,不允许同时传入activate_url字段,否则设置wx_activate失效。填入该字段后仍需调用接口设置开卡项方可生效,详情见 一键开卡 。 |
supply_bonus | 是 | bool | 显示积分,填写true或false,如填写true,积分相关字段均为必 填 若设置为true则后续不可以被关闭。 |
bonus_url | 否 | string(128) | 设置跳转外链查看积分详情。仅适用于积分无法通过激活接口同步的情况下使用该字段。 |
supply_balance | 是 | bool | 是否支持储值,填写true或false。如填写true,储值相关字段均为必 填 若设置为true则后续不可以被关闭。该字段须开通储值功能后方可使用, 详情见: 获取特殊权限 |
balance_url | 否 | string(128) | 设置跳转外链查看余额详情。仅适用于余额无法通过激活接口同步的情况下使用该字段。 |
custom_field1 | 否 | JSON结构 | 自定义会员信息类目,会员卡激活后显示,包含name_type (name) 和url字段 |
custom_field2 | 否 | JSON结构 | 自定义会员信息类目,会员卡激活后显示,包含name_type(name)和url字段 |
custom_field3 | 否 | JSON结构 | 自定义会员信息类目,会员卡激活后显示,包含name_type (name) 和url字段 |
name_type | 否 | string(24) | 会员信息类目半自定义名称,当开发者变更这类类目信息的value值时 可以选择触发系统模板消息通知用户。 FIELD_NAME_TYPE_LEVEL 等级 FIELD_NAME_TYPE_COUPON 优惠券 FIELD_NAME_TYPE_STAMP 印花 FIELD_NAME_TYPE_DISCOUNT 折扣 FIELD_NAME_TYPE_ACHIEVEMEN 成就 FIELD_NAME_TYPE_MILEAGE 里程 FIELD_NAME_TYPE_SET_POINTS 集点 FIELD_NAME_TYPE_TIMS 次数 |
name | 否 | string(24) | 会员信息类目自定义名称,当开发者变更这类类目信息的value值时 不会触发系统模板消息通知用户 |
url | 否 | string(128) | 点击类目跳转外链url |
bonus_cleared | 否 | string(128) | 积分清零规则。 |
bonus_rules | 否 | string(128) | 积分规则。 |
balance_rules | 否 | string(128) | 储值说明。 |
activate_url | 否 | string(128) | 激活会员卡的url。 |
activate_app_brand_user_name | 否 | string(128) | 激活会原卡url对应的小程序user_name,仅可跳转该公众号绑定的小程序 |
activate_app_brand_pass | 否 | string(128) | 激活会原卡url对应的小程序path |
custom_cell1 | 否 | JSON结构 | 自定义会员信息类目,会员卡激活后显示。 |
name | 是 | string(15) | 入口名称。 |
tips | 是 | string(18) | 入口右侧提示语,6个汉字内。 |
url | 是 | string(128) | 入口跳转链接。 |
bonus_rule | 否 | JSON结构 | 积分规则 。 |
cost_money_unit | 否 | int | 消费金额。以分为单位。 |
increase_bonus | 否 | int | 对应增加的积分。 |
max_increase _bonus | 否 | int | 用户单次可获取的积分上限。 |
init_increase _bonus | 否 | int | 初始设置积分。 |
cost_bonus_unit | 否 | int | 每使用5积分。 |
reduce_money | 否 | int | 抵扣xx元,(这里以分为单位) |
least_moneyto use_bonus | 否 | int | 抵扣条件,满xx元(这里以分为单位)可用。 |
max_reduce _bonus | 否 | int | 抵扣条件,单笔最多使用xx积分。 |
discount | 否 | int | 折扣,该会员卡享受的折扣优惠,填10就是九折。 |
base_info字段:
参数名 | 必填 | 类型 | 描述 |
---|---|---|---|
logo_url | 是 | string(128) | 卡券的商户logo,建议像素为300*300。 |
code_type | 是 | string(16) | Code展示类型, "CODE_TYPE_TEXT" 文本 "CODE_TYPE_BARCODE" 一维码 "CODE_TYPE_QRCODE" 二维码 "CODE_TYPE_ONLY_QRCODE" 仅显示二维码 "CODE_TYPE_ONLY_BARCODE" 仅显示一维码 "CODE_TYPE_NONE" 不显示任何码型 |
pay_info | 否 | JSON | 支付功能结构体,swipe_card结构 |
swipe_card | 否 | JSON | 刷卡功能结构体,包含is_swipe_card字段 |
is_swipe_card | 否 | bool | 是否设置该会员卡支持拉出微信支付刷卡界面 |
is_pay_and_qrcode | 否 | bool | 是否设置该会员卡中部的按钮同时支持微信支付刷卡和会员卡二维码 |
brand_name | 是 | string | 商户名字,字数上限为12个汉字。 |
title | 是 | string | 卡券名,字数上限为9个汉字 (建议涵盖卡券属性、服务及金额)。 |
color | 是 | string | 券颜色。按色彩规范标注填写Color010-Color100 |
notice | 是 | string | 卡券使用提醒,字数上限为16个汉字。 |
description | 是 | string | 卡券使用说明,字数上限为1024个汉字。 |
sku | 是 | JSON | 商品信息。 |
quantity | 是 | int | 卡券库存的数量,不支持填写0,上限为100000000。 |
date_info | 是 | JSON | 使用日期,有效期的信息。 |
type | 是 | string | 使用时间的类型 支持固定时长有效类型 固定日期有效类型 永久有效类型( DATE_TYPE_PERMANENT) |
begin _timestamp | 否 | int | type为DATE_TYPE_FIX_TIME_RANGE时专用, 表示起用时间。从1970年1月1日00:00:00至起用时间的秒数 ( 东八区时间,UTC+8,单位为秒 ) |
end _timestamp | 否 | int | type为DATE_TYPE_FIX_TERM_RANGE时专用,表示结束时间 ( 东八区时间,UTC+8,单位为秒 ) |
fixed_term | 否 | int | type为DATE_TYPE_FIX_TERM时专用,表示自领取后多少天内有效,领取后当天有效填写0(单位为天) |
fixed_begin _term | 否 | int | type为DATE_TYPE_FIX_TERM时专用,表示自领取后多少天开始生效。(单位为天) |
use_custom _code | 否 | bool | 是否自定义Code码。填写true或false,默认为false 通常自有优惠码系统的开发者选择自定义Code码,详情见 是否自定义code |
bind_openid | 否 | bool | 是否指定用户领取,填写true或false。默认为false |
service_phone | 否 | string(24) | 客服电话 |
location_id_list | 否 | array | 门店位置ID。调用 POI门店管理接口 获取门店位置ID。 |
use_all_locations | 否 | bool | 会员卡是否支持全部门店,填写后商户门店更新时会自动同步至卡券 |
center_title | 否 | string(18) | 卡券中部居中的按钮,仅在卡券激活后且可用状态 时显示 |
center_sub _title | 否 | string(24) | 显示在入口下方的提示语 , 仅在卡券激活后且可用状态时显示 |
center_url | 否 | string(128) | 顶部居中的url ,仅在卡券激活后且可用状态时显示 |
custom_url _name | 否 | string(15) | 自定义跳转外链的入口名字。 |
custom_url | 否 | string(128) | 自定义跳转的URL。 |
custom_url _sub_title | 否 | string(18) | 显示在入口右侧的提示语。 |
promotion _url_name | 否 | string(15) | 营销场景的自定义入口名称。 |
promotion _url | 否 | string(128) | 入口跳转外链的地址链接。 |
promotion_ url_sub_title | 否 | string(18) | 显示在营销入口右侧的提示语。 |
get_limit | 否 | int | 每人可领券的数量限制,建议会员卡每人限领一张 |
can_share | 否 | bool | 卡券领取页面是否可分享,默认为true |
can_give _friend | 否 | bool | 卡券是否可转赠,默认为true |
need_push_on _view | 否 | bool | 填写true为用户点击进入会员卡时推送事件,默认为false。详情见 进入会员卡事件推送 |
Advanced_info(卡券高级信息)字段
字段 | 是否必填 | 类型 | 说明 |
---|---|---|---|
advanced_info | 否 | JSON结构 | 创建优惠券特有的高级字段 |
use_condition | 否 | JSON结构 | 使用门槛(条件)字段,若不填写使用条件则在券面拼写 :无最低消费限制,全场通用,不限品类;并在使用说明显示: 可与其他优惠共享 |
accept_category | 否 | string(512) | 指定可用的商品类目,仅用于代金券类型 ,填入后将在券面拼写适用于xxx |
reject_category | 否 | string(512) | 指定不可用的商品类目,仅用于代金券类型 ,填入后将在券面拼写不适用于xxxx |
least_cost | 否 | int | 满减门槛字段,可用于兑换券和代金券 ,填入后将在全面拼写消费满xx元可用。 |
object_use_for | 否 | string(512) | 购买xx可用类型门槛,仅用于兑换 ,填入后自动拼写购买xxx可用。 |
can_use_with_other_discount | 否 | bool | 不可以与其他类型共享门槛 ,填写false时系统将在使用须知里 拼写“不可与其他优惠共享”, 填写true时系统将在使用须知里 拼写“可与其他优惠共享”, 默认为true |
abstract | 否 | JSON结构 | 封面摘要结构体名称 |
abstract | 否 | string(24 ) | 封面摘要简介。 |
icon_url_list | 否 | string(128 ) | 封面图片列表,仅支持填入一 个封面图片链接, 上传图片接口 上传获取图片获得链接,填写 非CDN链接会报错,并在此填入。 建议图片尺寸像素850*350 |
text_image_list | 否 | JSON结构 | 图文列表,显示在详情内页 ,优惠券券开发者须至少传入 一组图文列表 |
image_url | 否 | string(128 ) | 图片链接,必须调用 上传图片接口 上传图片获得链接,并在此填入, 否则报错 |
text | 否 | string(512 ) | 图文描述 |
business_service | 否 | arry | 商家服务类型: BIZ_SERVICE_DELIVER 外卖服务; BIZ_SERVICE_FREE_PARK 停车位; BIZ_SERVICE_WITH_PET 可带宠物; BIZ_SERVICE_FREE_WIFI 免费wifi, 可多选 |
time_limit | 否 | JSON结构 | 使用时段限制,包含以下字段 |
type | 否 | string(24) | 限制类型枚举值:支持填入 MONDAY 周一 TUESDAY 周二 WEDNESDAY 周三 THURSDAY 周四 FRIDAY 周五 SATURDAY 周六 SUNDAY 周日 此处只控制显示, 不控制实际使用逻辑,不填默认不显示 |
begin_hour | 否 | int | 当前type类型下的起始时间(小时) ,如当前结构体内填写了MONDAY, 此处填写了10,则此处表示周一 10:00可用 |
begin_minute | 否 | int | 当前type类型下的起始时间(分钟) ,如当前结构体内填写了MONDAY, begin_hour填写10,此处填写了59, 则此处表示周一 10:59可用 |
end_hour | 否 | int | 当前type类型下的结束时间(小时) ,如当前结构体内填写了MONDAY, 此处填写了20, 则此处表示周一 10:00-20:00可用 |
end_minute | 否 | int | 当前type类型下的结束时间(分钟) ,如当前结构体内填写了MONDAY, begin_hour填写10,此处填写了59, 则此处表示周一 10:59-00:59可用 |
返回说明
{
"errcode":0,
"errmsg":"ok",
"card_id":"p1Pj9jr90_SQRaVqYI239Ka1erkI"
}
参数名 | 描述 |
---|---|
errcode | 错误码,0为正常。 |
errmsg | 错误信息。 |
card_id | 卡券ID。 |
返回码 说明 常见错误
-1 系统繁忙,此时请开发者稍候再试。 无权限或者频繁调用超过调用次数
0 请求成功 OK
40009 图片文件超长。
40013 不合法的Appid,请开发者检查 AppID的正确性,避免异常字符,注意大小写。
40053 不合法的actioninfo,请开发者确认参数正确。 1. 确认请求链接是否正确 2. 确认action name是否正确
40071 不合法的卡券类型。 1. 卡券类型与结构体名不一致 2. 卡券类型与特有字段不对应
40072 不合法的编码方式。
40078 不合法的卡券状态。 卡券处于转赠删除或者失效状态
40079 不合法的时间。 卡券未到有效期
40080 不合法的CardExt。 1. card_ext缺乏关键必填参数 2. card_ext格式错误
40099 卡券已被核销。
40100 不合法的时间区间。 时间戳错误
40116 不合法的Code码。
40122 不合法的库存数量。
40124 会员卡设置查过限制的custom_field字段。 设置超过2个以上的custom_field
40127 卡券被用户删除或转赠中。
41012 缺少cardid参数。
45030 该cardid无接口权限。
45031 库存为0。
45033 用户领取次数超过限制get_limit
41011 缺少必填字段。
45021 字段超过长度限制,请参考相应接口 的字段说明。
40056 不合法的Code码。
43010 无储值权限,请前往公众平台申请。 需要开通处置权限
3:使用wx.config方法请求页面
主要接口
获取token:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
获取ticket:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
signature组装规则,noncestr(随机数),jsapi_ticket(接口获取),timestamp(时间戳),url(使用js的页面地址路径)进行SHA-1处理
详情网页跳转
4:使用wx.addCard方法请求领卡页面
主要接口
获取token:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
获取card_ticket:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=wx_card
signature组装规则:code(会员卡卡号,传值生成),ticket,timestamp,nonce_str,openid(用户openId),cardId数据排序后进行SHA-1处理
详情网页跳转
最后整体流程也可以参考微信平台,这里是本人开发完之后简单总结一下
微信平台卡包
可以留言交流