关于如何添加卡券到微信卡包的坑

首先,已经读取到了cardId,此时需要去生成签名,注意,此时已经使用config配置,即添加了addCard,openCard等方法,此处略过,本文主要讲添加卡包用到的签名

1.生成签名

(注:属于前端模拟,最好由后端生成)

var cardId = 'xxxxxxxxxxxx'
  var timestamp = '1514292155'
  var api_ticket = 'xxxxxxxxxxxxxxxxx'
  var nonceStr = '1qaz2wsx'
  var arr = new Array(api_ticket,nonceStr, timestamp, cardId);

  // 转为字符串
  arr = arr.map(function(n) {
    return n.toString();
  });

  // 字典序排序
  arr = arr.sort();

  // 拼接为字符串
  var str = arr.join("");

  // 进行SHA1加密,sha1算法需自行实现
  var signature = hex_sha1(str)
  console.log('signature:', signature)

总共需要四个参数,其中的api_ticket需要通过接口返回,第一步要获取token,第二步,通过获取的token获取ticket,获取token通过appid和secret,获取ticket通过以下的方法

// 获取ticket
https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=xxx&&type=wx_card
// 获取token
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

然后就可以生成签名了

2.调用addCard

 var signature = 'xxxxxxx'
        var timespan = '1514292155'
        var nonceStr ='1qaz2wsx'
        var api_ticket = 'm7RQzjA_ljjEkt-JCoklRB7LfGKT7x8UsKpnVAopKOzvW4eFSq6HSbKKxAOjvlQ0AYy0tq5rprFdtFfy_WsPWw'
        var ext = '{"api_ticket":"'+api_ticket+'","card_id":"'+cardId+'","nonce_str":"'+nonceStr+'","timestamp": "'+timespan+'", "signature":"'+signature+'"}'
        console.log('extextextextextext:', ext)
        wx.addCard({
          cardList: [
            {
              cardId: cardId,
              cardExt:ext
            }
          ],
          success: function (res) {
            
          },
          cancel: function (res) {
            alert(JSON.stringify(res))
          }
        })

这里有一点需要注意,card_id必须和生成签名的保持一致,timestamp必须和生成签名的保持一致,nonce_str必须和生成签名的保持一致,注意是用下划线连接,另外网上查到timespan必须是以秒为单位,我在这边遇到的坑就是把nonce_str写成了nonceStr,一直报签名错误

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 久违的新文章发布。。我的锅这篇文章是在写的太长,可以慢慢看一下,伪代码,毕竟简书上面,望大家见谅!!!先看官方文档...
    wyatt_plus阅读 1,668评论 0 2
  • 开发前首先我们要知道一些概念 各公众号区别:1、订阅号:为媒体和个人提供一种信息传播方式,主要偏于为用户传达资讯(...
    CoderZS阅读 3,253评论 1 19
  • 微信服务号开发 整体流程 域名报备,服务器搭建 Python开发环境和项目的初始化搭建; 微信公众号注册及开发模式...
    飞行员suke阅读 4,619评论 0 14
  • 中央“八项规定”以来,重拳反腐,倡导俭廉。起初很多单位都会错了意,好几年连年终散伙的“尾牙”也没了,同时把过年过节...
    疏影橫斜阅读 681评论 2 2
  • 毕业之后我留在南京,说这句话的时候就像自己已经在南京待了很久一样,实际上我刚毕业了一个月。我在一家很小很小的外贸公...
    Kyoya09阅读 521评论 0 2