添加卡券是随便就可以加吗?还是需要什么东西?
测试添加卡券,显示"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位
请问是啥原因啊
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.