收藏
回答

添加卡券--签名错误

问题模块
API和组件

使用小程序添加卡券功能,一直报签名错误,使用debug测试的签名是一致的,api_ticket 公众号 小程序的都试过了 ,依然报错。成功的兄弟,麻烦指点一二

最后一次编辑于  2017-08-28  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

4 个回答

  • 梅宝
    梅宝
    2017-08-28

    我也遇到这个问题了,签名和官方提供的校验工具得出的签名结果一致,但是依然报签名错

    2017-08-28
    赞同 1
    回复
  • 霁雨思
    霁雨思
    2018-01-23

    上边的描述都对,但还是报签名错误,怎么解决呢?

    2018-01-23
    赞同 1
    回复
  • 老花猫
    老花猫
    2017-08-28

    终于搞定了,

    1. 检查获取当前ticekt的appid是否为创建card_id的appid;  这里获取api_ticket要使用工作号的appid获取,因为卡券是由公众号创建的

    2.

    'timestamp'=>time(),
    'api_ticket'=>$api_ticket,
    'card_id'=>$card_id,
    'nonce_str'=>md5(time())

    如果不是指的code ,指的openid的, 这四个参数参与签名就可以了

    https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=cardsign 这里可以校验


    3.小程序端

     wx.addCard({

            cardList: [

              {

                cardId: '卡券id',

                cardExt: '{"nonce_str": "'+res.data.data.nonce_str+'", "timestamp": "'+res.data.data.timestamp+'", "signature":"'+res.data.data.sign+'"}'

              }

            ],

            success: function (res) {

              console.log(res.cardList) // 卡券添加结果

            }

          })


    这别写错了 ,我的数据是打包回来的  res.data是打包的数据, res.data.data.nonce_str获取了服务器传回的数据,一直写成res.data,nonce_str,所以一直上传的是undefined,也没注意console.log查看一下,报错一直报签名错误,一直以为是签名真的错了,原来上传的数据一直是空。。。



    2017-08-28
    赞同
    回复
  • 刘
    2017-11-27

    感谢感谢

    2017-11-27
    赞同
    回复