H5调起会员卡开卡组件
更新时间:2025.02.19||
商户通过调用openBusinessView接口打开2.0会员卡的开卡组件页面,可引导用户开通会员卡或查看已开通的会员卡详情。
简介
接口兼容
此接口引用 JSAPI版本1.5.0,引用地址:https://res.wx.qq.com/open/js/jweixin-1.5.0.js
请求参数
businessType 必填 string(16)
【跳转类型】 固定配置:wxpaymktMemberOpen
queryString 必填 string(2048)
【业务参数】 使用URL的query string方式传递参数,格式为key=value&key2=value2,其中value,value2需要进行UrlEncode处理。
 | 属性 |
| permission_token 必填 string(1024)
【预授权token】 用于跳转到微信侧小程序授权数据,跳转到微信侧小程序传入,无有效期限制; permission_token可以从《商户预授权》接口的返回参数中获取。 |
示例代码

1permission_token=zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2
返回参数
err_code 必填 string(32)
【返回码】 返回码,由于iOS和Android实现上的差异,err_code类型可能为Number或string ,因此在判断“从会员卡2.0开卡组件页面是否成功返回商户的H5”时,需要对err_code做整型化处理。
err_msg 必填 string(128)
【返回信息】 返回信息
extraData 选填 Object
【业务参数】 当err_code为0时,extraData才返回;反之,则不返回。
 | 属性 |
| create_card_appid 必填 string(32)
【商户AppID】 商户的公众号AppID。 1、只能为服务号AppID,不支持App、小程序、订阅号的AppID。 2、该AppID用于获取会员OpenID及unionid。 3、会员相关(会员状态、权益、服务)消息将通过该服务号触达用户 4、该AppID需要与会员卡归属品牌有B-A关系
card_id 必填 string(32)
【会员卡ID】 商户创建微信会员卡模板成功后系统返回的会员卡模板ID
card_code 选填 string(32)
【会员卡code】 实时code传入模式填写此字段
outer_str 选填 string(128)
【自定义场景值】 自定义场景值,商户可以用于标记投放场景,如门店/来源等。只能录入数字及中英文/半角标点 匹配正则表达式: ^[0-9a-zA-Z\u0000-\u00FF\u4e00-\u9fa5]+$
activate_type 必填 string(32)
【激活类型】 激活类型 ACTIVATE_TYPE_NORMAL:一键激活 ACTIVATE_TYPE_JUMP:跳转激活
jump_url 选填 string(128)
【跳转激活的URL】 用户开卡时,跳转到URL指定的页面。如果同时配置了URL和AppID/path,则优先跳转到小程序
jump_appid 选填 string(32)
【跳转激活的AppID】 用户开卡时,跳转到小程序指定页面。如果同时配置了URL和AppID/PATH,则优先跳转到小程序
jump_path 选填 string(128)
【跳转激活的path】 用户开卡时,跳转到小程序指定页面。如果同时配置了URL和AppID/PATH,则优先跳转到小程序 |
示例代码

1let wechatInfo = navigator.userAgent.match(/MicroMessenger\/([\d\.]+)/i);
2let wechatVersion = wechatInfo[1];
3if (compareVersion(wechatVersion, '7.0.5') >= 0) {
4 goToWXScore();
5} else {
6
7 window.href = 'https://support.weixin.qq.com/cgi-bin/readtemplate?t=page/
8 common_page__upgrade&text=text005&btn_text=btn_text_0'
9}
10
11
12
13function goToWXScore() {
14 wx.checkJsApi({
15 jsApiList: ['openBusinessView'],
16 success: function (res) {
17
18
19 if (res.checkResult.openBusinessView) {
20 wx.invoke(
21 'openBusinessView', {
22 businessType: 'wxpaymktMemberOpen',
23 queryString: 'permission_token=zyx53Nkey8o4bHpxTQvd8m7e92nG5mG2'
24 },
25 function (res) {
26
27 if (parseint(res.err_code) === 0) {s
28
29 } else {
30
31 }
32 });
33 }
34 }
35 });
36 }
37
38
39
40
41
42function compareVersion(v1, v2) {
43 v1 = v1.split('.')
44 v2 = v2.split('.')
45 const len = Math.max(v1.length, v2.length)
46
47 while (v1.length < len) {
48 v1.push('0')
49 }
50 while (v2.length < len) {
51 v2.push('0')
52 }
53
54 for (let i = 0; i < len; i++) {
55 const num1 = parseint(v1[i])
56 const num2 = parseint(v2[i])
57
58 if (num1 > num2) {
59 return 1
60 } else if (num1 < num2) {
61 return -1
62 }
63 }
64
65 return 0
66 }