微信小程序与支付宝小程序使用模板消息步骤与踩坑

因领导需要,想使用模板消息,增加用户体验,如果用户没有完成订单的时候,系统后台人员给用户发送模板消息,提醒用户进行下一步的继续订单。
后台接口配置好之后,要求的是,只能在用户付过款之后,才能给用户进行推送。

先说微信上前端的具体实现:

看了文档,推送消息,需要经过用户授权,并且只有在用户点击或者付款成功的时候,才能调起授权信息窗口,不可以在小程序onLoad中调起。所以我只能在首页的按钮上添加如下的代码:

wx.requestSubscribeMessage({
      tmplIds: [tmplId],//tmplId是当前公众平台申请的模板id号,同一个小程序,最多可以添加三个模板。因为我们有多个小程序,所以我使用了变量
      success(res) {
        console.log(res.errMsg)
        console.log('用户点击确定')
      },
      fail(res) {
        console.log('用户点击取消')
      },
      complete(res) {
        wx.navigateTo({
          url: '/pages/introduce/introduce',
        })
      }
    })

然后将用户点击模板消息要进入的页面路径给后端发过去就完成了。

  • 坑一: 授权信息窗口的调起只能在真机上可以调起,模拟器点击按钮会报错
  • 坑二:如果用户在点击授权窗口信息中,点击了 以后都保持这个状态的(类似于记住我的这个操作),下一次,再次点击的时候就不会调起这个窗口了,(一旦用户点击拒绝,并且记住),相当于这个模板消息就没有任何作用了。

支付宝上:

前端不用写任何的代码,只需要后端进行配置就可以了,还是将路径给后端人员。

最大的坑来了!

因为通过模板消息进来的页面,要传递参数和订单号等信息。后端配置好以后,测试了一下,同样的代码(微信和支付宝代码逻辑是一样的,路径和参数都是一样的),就是在微信小程序中可以正常跳转到相应的页面,同时参数也是正常传递,一切都正常。但是支付宝只可以跳转到相应的页面,但是参数就是传递不过来。
问了后台,路径配置没有错,参数也传递了。
当时测试一点击就跳转到线上版本,就没法进行本地测试,以为只能在线上测试。很郁闷,后来发现,支付宝是可以本地测试的。因为app有缓存,先扫描本地的预览二维码,再从后台系统中给自己发送模板消息,点击跳转的就不再是线上版本,而是刚刚扫描的本地版本了。通过真机测试显示,后台只传递了 action=continueSign,字符串,并没有把订单号传递进来。我们后端是一个大神,为了不打扰大神,只能自己看了一下后台配置接口,支付宝上的和微信上的差别不太大(主要还是看不太懂。。。),问了支付宝客服,最后人家说,传递参数,需要对参数进行一下 encode转码,就可以了。然后还给我发了一个后端代码截图,然后我给后端发了过去,进行了配置转码。最后测试了一下,成功!心里的石头终于落下去了!

最后想说一下,支付宝清理一次缓存可真难。需要在本机系统上进行清理。(设置->应用管理->清除数据)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值