16.8.1 HTML5网页中领取卡券
HTML5网页中领取卡券是微信JS-SDK接口的一个功能。生成卡券ID之后,将其传入HTML5页面中,再使用JS-SDK接口进行领取。
HTML5网页中领取卡券的代码如下。
1 <?php
2 require_once('wxjssdk.class.php');
3 $weixin = new class_weixin;
4 $signPackage = $weixin->GetSignPackage;
5 $cardapi_ticket = $weixin->getCardApiTicket;
6
7 $card_id = "piPuduN0wOytmRlSyeNJQToE7BIU";
8 $obj['api_ticket'] = $cardapi_ticket;
9 $obj['timestamp'] = strval(time);
10 $obj['nonce_str'] = $weixin->createNonceStr;
11 $obj['card_id'] = $card_id;
12 $signature = $weixin->get_cardsign($obj);
13
14 ?>
15
16 <!DOCTYPE html>
17 <html>
18 <head>
19 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
20 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-
scale=2.0, minimum-scale=1.0, user-scalable=no" />
21 <meta name="format-detection" content="telephone=no" />
22 <title>微信</title>
23 <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
24 <link rel="stylesheet" href="http:// demo.open.weixin.qq.com/jssdk/css/style.css">
25 </head>
26 <body ontouchstart="">
27 <h3>微信卡券接口</h3>
28 <span>批量添加卡券接口</span>
29 <button>addCard</button>
30 </body>
31 <script src="https:// res.wx.qq.com/open/js/jweixin-1.1.0.js"></script>
32 <script>
33 wx.config({
34 debug: false,
35 appId: '<?php echo $signPackage["appId"];?>',
36 timestamp: <?php echo $signPackage["timestamp"];?>,
37 nonceStr: '<?php echo $signPackage["nonceStr"];?>',
38 signature: '<?php echo $signPackage["signature"];?>',
39 // url:'<?php echo $signPackage["url"];?>',
40 jsApiList: [
41 'addCard',
42 ]
43 });
44 </script>
45 <script>
46 wx.ready(function {
47 // 自动执行的
48 wx.checkJsApi({
49 jsApiList: [
50 'addCard',
51 ],
52 success: function (res) {
53 // alert(JSON.stringify(res));
54 }
55 });
56
57 document.querySelector('#addCard').onclick = function {
58 wx.addCard({
59 cardList: [
60 {
61 cardId: '<?php echo $obj['card_id'];?>',
62 cardExt: '{"code":"","openid":"","nonce_str":"<?php echo $obj
['nonce_str']?>" ,"timestamp": "<?php echo $obj['timestamp'];?>",
"signature":"<?php echo $signature;?>"}'
63 }
64 ],
65 success: function (res) {
66 alert('已添加卡券:' + JSON.stringify(res.cardList));
67 },
68 cancel: function (res) {
69 alert(JSON.stringify(res))
70 }
71 });
72 };
73 });
74
75 wx.error(function (res) {
76 alert(res.errMsg);
77 });
78 </script>
79 </html>
上述代码中,需要注意的地方是卡券的签名部分,读者可以参考第14章的代码实现。