
添加卡券是随便就可以加吗?还是需要什么东西?
测试添加卡券,显示"system error"
js代码如下:
function addCard() { wx.addCard({ cardList: [{ cardId: '100001', cardExt:'{"code":"","openid":"","nonceStr":"${api_nonceStr}", "timestamp": ${timestamp}, "signature":"${signature}"}' }], success: function (res) { alert('已添加卡券:' + JSON.stringify(res.cardList)); } }); } 生成签名的后台代码如下:
public static String makeApiSignature(String api_ticket, String timestamp, String nonce_str) { String card_id = "100001"; String[] values = {api_ticket, timestamp, card_id, nonce_str}; Arrays.sort(values); String sourceStr = ""; for (int i = 0; i < values.length; i++) { sourceStr += values[i]; } LOGGER.info("source:" + sourceStr); String signature = ""; try { MessageDigest md = MessageDigest.getInstance("SHA-1"); md.reset(); md.update(sourceStr.getBytes("UTF-8")); signature = byteToHex(md.digest()); } catch (Exception e) { e.printStackTrace(); } return signature.toUpperCase(); } private static String byteToHex(final byte[] hash) { Formatter formatter = new Formatter(); for (byte b : hash) { formatter.format("%02x", b); } String result = formatter.toString(); formatter.close(); return result; } 其中nonce_str用的是randomUUID截取前16位
请问是啥原因啊
1 defia 2015 年 6 月 24 日 我看了一下我这里生产环境下用的代码,CardExt里首先code openid压根都没写,其次压根没有nonceStr |
2 defia 2015 年 6 月 24 日 也就是说,CardExt里只有timestamp和signature |
6 crs0910 2015 年 6 月 24 日 @defia 请问下 signature 这个是怎么算出来的,微信的文档里面写的是把几个参数的值按照字典序排序然后加密,但是官方下面给的例子又不是按照字典序排序来的。 |
7 crs0910 2015 年 6 月 24 日 lz 是江大神么? |
8 delavior OP @defia 字段名确实写错了,不过改了还是同样的错;至于卡,我没有啊,我就是想问,要测试添加卡券需要什么前提条件。。。 |
10 defia 2015 年 6 月 24 日 |
12 LuckyHJH 2015 年 6 月 24 日 搞腾讯的东西真的蛋疼得要死,想当初搞微信卡券的时候,最后变成直接弃用,然后自己生成兑换码,再做了个网页来验证 - - |
13 daylight890307 2015 年 7 月 25 日 我也是遇到了这个问题 请问楼主解决了吗 |