zoukankan      html  css  js  c++  java
  • 微信卡券领用中的问题

    客户对系统中的微信卡券很不满意,说是一次不能领取多张,而且不能控制领取的次数。

    看到微信官方的demo

    http://203.195.235.76/jssdk/

    最后是长这样

    领取到卡包。你会发现,成功的领到了 2 张券。

    然后你按它的文档,勇敢的写了一个demo,最后你会发现,成功的领到了1张券。各种原因的查找,网上也没有这些说明。

    在试验了N次之后,重复发布了N次之后。终于发现原因了。

    wx.addCard({
    cardList: [
    {
    cardId: 'pDF3iY9tv9zCGCj4jTXFOo1DxHdo',
    cardExt: '{"code": "", "openid": "", "timestamp": "1418301401", "signature":"f6628bf94d8e56d56bfa6598e798d5bad54892e5","outer_str":"123"}'
    },
    {
    cardId: 'pDF3iY9tv9zCGCj4jTXFOo1DxHdo',
    cardExt: '{"code": "", "openid": "", "timestamp": "1418301401", "signature":"f6628bf94d8e56d56bfa6598e798d5bad54892e5","outer_str":"123"}'
    }
    ],
    success: function (res) {
    alert('已添加卡券:' + JSON.stringify(res.cardList));
    },
    cancel: function (res) {
    alert(JSON.stringify(res))
    }
    });

    注意看,它没有 nonce_str,它没有 nonce_str,它没有 nonce_str ,重点说三遍。

    是不是很吃惊。

    再看这个文档

    https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115

    nonce_str 随机字符串,由开发者设置传入, 加强安全性(若不填写可能被重放请求) 。随机字符串,不长于32位。推荐使用大小写字母和数字,不同添加请求的nonce须动态生成,若重复将会导致领取失败。

    理解了下设计者的想法。nonce_str有值,证明,是不同的请求,"同一个值将会导致领取失败"。如果不填说明没值,将会成功。

    最后一个问题,outer_str居然不起作用。看文档

    outer_str 领取渠道参数,用于标识本次领取的渠道值。

    经过我多次测试,我表示这个的确是不会起作用。最后,查看到以下文档

    https://www.w3cschool.cn/weixinkaifawendang/9pfz1qey.html

    outer_id int 12 领取场景值,用于领取渠道的数据统计,默认值为0,字段类型为整型,长度限制为60位数字。用户领取卡券后触发的事件推送中会带上此自定义场景值。

    死马当活马医,使用了outer_id,终于从事件User_Get_Card中将此值推送给我了。

    此值放到了outerstr属性中,大写的服字。

    最后看了下代码。是我错误了取的outer_id值。

  • 相关阅读:
    03_ if 练习 _ little2big
    uva 11275 3D Triangles
    uva 12296 Pieces and Discs
    uvalive 3218 Find the Border
    uvalive 2797 Monster Trap
    uvalive 4992 Jungle Outpost
    uva 2218 Triathlon
    uvalive 3890 Most Distant Point from the Sea
    uvalive 4728 Squares
    uva 10256 The Great Divide
  • 原文地址:https://www.cnblogs.com/forhell/p/9054870.html
Copyright © 2011-2022 走看看