navigateToMiniProgram
接口即将废弃,新版本中请使用<navigator>
组件来使用此功能
<navigator
target="miniProgram"
app-id="wxeb490c6f9b154ef9"
extra-data="{{data}}">
会员卡开卡</navigator>
返回说明
在 App.onShow 里判断从会员开卡小程序返回的数据data
判断 data.referrerInfo.appId 是否为开卡小程序 appId
wxeb490c6f9b154ef9
,如果不是则中止判断判断是否有 data.referrerInfo.extraData 是否有数据,如果没有,表示用户未激活直接左滑/点返回键返回,或者用户已经激活
若用户激活成功,可以从 data.referrerInfo.extraData 中获取 activate_ticket,card_id,code 参数用于下一步操作
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
之前的步骤已顺利完成:
1、API创建会员卡,其中激活方式:
"wx_activate"=>true,
"wx_activate_after_submit"=>false,
"wx_activate_after_submit_url"=>"https://*****************/",
2、API获取开卡组件链接,encrypt_card_id、outer_str、biz
3、小程序在个人中心添加
<navigator
target="miniProgram"
app-id="wxeb490c6f9b154ef9"
extra-data="{{data}}">
会员卡开卡</navigator>
正式开始,进入问题:
小程序个人中心,点击开卡链接,顺利进入领卡页面,确认手机号码,点击提交!结果,页面直接返回小程序个人中心,onshow里无法获取data,console出undefined!此时会员卡已领取到微信卡包,未激活状态!
问题1:
创建会员卡的激活方式正确与否?
"wx_activate"=>true,
"wx_activate_after_submit"=>false,
"wx_activate_after_submit_url"=>"https://*****************/",
//"auto_activate""activate_url"均未填
问题2:
个人中心点击领卡,跳转到官方领卡页面,验证手机号之后提交,直接返回了小程序个人中心!
a、这一流程正常吗?我预计的是领卡后返回data,根据activate_ticket,card_id,code,后台API激活会员卡,并且记录会员领取的信息。
b、还有,如何接收开卡数据data?
个人中心的index.js代码如下:
onShow: function (data) {
var that = this;
console.log(data);
// 判断开卡后返回的参数,并且后台激活会员卡
if (data){
if (data.hasOwnProperty('referrerInfo')) {
if (data.referrerInfo.appId != 'wxeb490c6f9b154ef9') {
return;
}
if (!data.referrerInfo.extraData) {
return;
}
wx.request({
url: app.globalData.url + '/routine/auth_api/do_active'
method: 'POST',
data: { data: data.referrerInfo.extraData },
success: function (res) {
console.log(res);
}
});
}
}
},
跳转型:即使是跳转小程序,也必须设置wx_activate_after_submit_url才可返回extraData(包含三个参数取activate_ticket card_id code),建议设置为小程序的路径即可;
非跳转型:其实是不支持返回extraData的(不是官方文档说的仅不返回activate_ticket,是啥都不返回了),官方文档说的这个是忽悠人的,按照这个设置是没用的“创建一张会员卡会员卡,会员卡的激活方式选择“wx_activate":true,"wx_activate_after_submit" : false,并获得card_id,详情见: 创建会员卡接口”
非跳转型填写wx_activate_after_submit_url,就会自动变成跳转型,不管你wx_activate_after_submit是否设置为false
所以建议使用跳转型,用小程序领卡。
官方文档链接:https://developers.weixin.qq.com/doc/offiaccount/Cards_and_Offer/Coupons-Mini_Program_Start_Up.html#%E6%AD%A5%E9%AA%A4-4
结贴了!找到问题根源,App.onShow的位置我搞错了~
请问app.show放哪里呢?
小程序根目录的app.js里的onshow
我的天啊,难怪呢。我放在当前页面的js里面的,一直打印undefined
楼主,现在遇到一个问题,onshow中只获取到当前的appid,extraData还是undefined,导致点击提交开卡报激活失败,,,
楼主问题解决了么。