收藏
回答

开卡组件问题-- App.onShow获取开卡数据data--其他流程问题

navigateToMiniProgram接口即将废弃,新版本中请使用<navigator>组件来使用此功能

<navigator
  target="miniProgram"
  app-id="wxeb490c6f9b154ef9"
  extra-data="{{data}}">
  会员卡开卡</navigator>

返回说明

在 App.onShow 里判断从会员开卡小程序返回的数据data

  1. 判断 data.referrerInfo.appId 是否为开卡小程序 appId wxeb490c6f9b154ef9,如果不是则中止判断

  2. 判断是否有 data.referrerInfo.extraData 是否有数据,如果没有,表示用户未激活直接左滑/点返回键返回,或者用户已经激活

  3. 若用户激活成功,可以从 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);

                }

            });

        }

    }

},


回答关注问题邀请回答
收藏

2 个回答

  • 墨家云@朱
    墨家云@朱
    2023-08-10

    跳转型:即使是跳转小程序,也必须设置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


    2023-08-10
    有用
    回复
  • 劉先森。
    劉先森。
    2019-04-16

    结贴了!找到问题根源,App.onShow的位置我搞错了~

    2019-04-16
    有用
    回复 5
    • nopain,nogain。
      nopain,nogain。
      2019-05-05

      请问app.show放哪里呢?

      2019-05-05
      回复
    • 劉先森。
      劉先森。
      2019-05-05回复nopain,nogain。

      小程序根目录的app.js里的onshow

      2019-05-05
      回复
    • nopain,nogain。
      nopain,nogain。
      2019-05-06回复劉先森。

      我的天啊,难怪呢。我放在当前页面的js里面的,一直打印undefined

      2019-05-06
      回复
    • nopain,nogain。
      nopain,nogain。
      2019-05-07回复nopain,nogain。

      楼主,现在遇到一个问题,onshow中只获取到当前的appid,extraData还是undefined,导致点击提交开卡报激活失败,,,

      2019-05-07
      回复
    • undefined
      undefined
      2019-05-08

      楼主问题解决了么。

      2019-05-08
      回复
登录 后发表内容