• 微信卡券领用中的问题


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

    看到微信官方的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值。

  • 相关阅读:
    UWP中的消息提示框(二)
    UWP中的消息提示框(一)
    使用批处理编写ORACLE设置
    程序员那些事儿
    “程序已停止工作”问题的解决方法
    《第一行代码--Android》阅读笔记之数据持久化
    《第一行代码--Android》阅读笔记之广播
    《第一行代码--Android》阅读笔记之界面设计
    《第一行代码--Android》阅读笔记之Activity
    WinForm中为按钮添加键盘快捷键,超简单,亲测有效
  • 原文地址:https://www.cnblogs.com/forhell/p/9054870.html
Copyright © 2020-2023  润新知