讀古今文學網 > 微信公眾平台開發:從零基礎到ThinkPHP5高性能框架實踐 > 16.8 案例實踐 >

16.8 案例實踐

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章的代碼實現。