久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

如何使用easywechat開發(fā)微信支付功能

 shopnc 2017-06-22

easywechat是神一樣的存在,。非常好用。希望大家都能轉到這上面來,。


用easywechat來開發(fā)微信支付功能,,步驟如下:


一,需要有一個商品下單頁面,,頁面上有你的商品的信息,,還要有購買數(shù)量,和一個購買按鈕,。

        用戶在這個頁面瀏覽商品信息的時候,,可以選擇購買的數(shù)量,然后點擊提交進入下一個頁面,。

       (這個頁面,,跟淘寶的商品購買頁面一樣。)


二,,創(chuàng)建一個頁面,,接收上面一步提交來的數(shù)據(jù),然后做如下計算 ,。


       1,,根據(jù)商品ID或是提交來的商品信息,生成商品的參數(shù)數(shù)組,。


  1. $product = [  
  2.     'trade_type'       => 'JSAPI'// 微信公眾號支付填JSAPI  
  3.     'body'             => '一盒火柴',  
  4.     'detail'           => '一盒火些',  
  5.     'out_trade_no'     => 'MYERPORDERID12345678'// 這是自己ERP系統(tǒng)里的訂單ID,,不重復就行。  
  6.     'total_fee'        => 8888, // 金額,,這里的8888分人民幣,。單位只能是分。  
  7.     'notify_url'       => 'http://www./order_notify', // 支付結果通知網(wǎng)址,,如果不設置則會使用配置里的默認地址  
  8.     'openid'           => 'you-open-id'// 這個不能少,,少了要報錯。  
  9.     // ...  基本上這些參數(shù)就夠了,或者參考微信文檔自行添加刪除,。  
  10. ];  

        2,,接下來,生成商品對象,。


  1. $order = new Order($product);  

        3,,再接下來,,要進行調(diào)用前計算了,。


  1. $app = new Application(config('wechat'));  
  2. $payment = $app->payment;  
  3. $result = $payment->prepare($order); // 這里的order是上面一步得來的。 這個prepare()幫你計算了校驗碼,,幫你獲取了prepareId.省心,。  
  4. $prepayId = null;  
  5. if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS'){  
  6.     $prepayId = $result->prepay_id; // 這個很重要。有了這個才能調(diào)用支付,。  
  7. else {  
  8.     var_dump($result);  
  9.     die("出錯了,。");  // 出錯就說出來,不然還能怎樣,?  
  10. }  
  11. $config = $payment->configForJSSDKPayment($prepayId); // 這個方法是取得js里支付所必須的參數(shù)用的,。 沒這個啥也做不了,除非你自己把js的參數(shù)生成一遍  


        4,,就快進入正題,,但是,還沒完,。還要取得一個數(shù)據(jù),。


  1. $app = new Application(config('wechat'));  
  2. $js = $app->js;  // 這個是jssdk里頁面上需要用到的js參數(shù)信息。  


        5,,上面獲得的$js 和 $config數(shù)據(jù),,要在頁面里顯示出來。

                注意,,上面幾步都不涉及顯示,,只是在生成頁面顯示所需要的數(shù)據(jù)。

                現(xiàn)在才需要把這些顯示在頁面上,。


  1. <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" type="text/javascript" charset="utf-8"></script>  
  2. <script type="text/javascript" charset="utf-8">  
  3.     wx.config({{ <span style="font-family: Arial, Helvetica, sans-serif;">$js->config(array('chooseWXPay')) </span><span style="font-family: Arial, Helvetica, sans-serif;">}}); </span>  
  4. </script>  
  5. <script>  
  6.     $(function(){  
  7.   
  8.         $(".btn-do-it").click(function(){  
  9.             wx.chooseWXPay({  
  10.                 timestamp: "{{$config['timestamp']}}"// 支付簽名時間戳,,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后臺生成簽名使用的timeStamp字段名需大寫其中的S字符  
  11.                 nonceStr: '{{$config['nonceStr']}}'// 支付簽名隨機串,,不長于 32 位  
  12.                 package: '{{$config['package']}}'// 統(tǒng)一支付接口返回的prepay_id參數(shù)值,,提交格式如:prepay_id=***)  
  13.                 signType: '{{$config['signType']}}'// 簽名方式,默認為'SHA1',,使用新版支付需傳入'MD5'  
  14.                 paySign: '{{$config['paySign']}}'// 支付簽名  
  15.                 success: function (res) {  
  16.                     // 支付成功后的回調(diào)函數(shù)  
  17.                     if(res.err_msg == "get_brand_wcpay_request:ok" ) {  
  18.                         alert('支付成功,。');  
  19.                         window.location.href="{{url("wechat/pay_ok")}}";  
  20.                     }else{  
  21.                         //alert(res.errMsg);  
  22.                         alert("支付失敗,請返回重試。");  
  23.                     }  
  24.                 },  
  25.                 fail: function (res) {  
  26.                     alert("支付失敗,,請返回重試,。");  
  27.                 }  
  28.             });  
  29.         });  
  30.     });  
  31. </script>  

        沒錯,只需要修改這些,。


        再來理一個,,第二步里,這個頁面需要顯示一個確認信息,,比如商品的名稱,,和支付的總金額。

        頁面上應該有一個按鈕,,用來觸發(fā)支付(.btn-do-it),。

        頁面里的js就是第5步里要顯示的內(nèi)容。



        總結:

        第一步,,商品信息頁面,,用戶選擇購買數(shù)據(jù),點購買,,提交到第二步的確認頁面,。

        第二步的確認頁面,根據(jù)商品信息,,和微信配置信息,,生成必要的支付數(shù)據(jù),并顯示購買確認信息,,和一個支付按鈕,,

        用戶點擊支付按鈕,發(fā)起支付,。

        支付完成,,提示用戶,或轉到相應頁面,。

        微信的開發(fā)團隊提醒我們,,請以微信的推送信息為準來處理訂單,不然有可能人財兩空,。



-分隔-


product.html


  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.     <meta charset="UTF-8">  
  5.     <title>一盒火柴</title>  
  6. </head>  
  7. <body>  
  8.   
  9. <h1>一盒火柴</h1>  
  10.   
  11. <div>  
  12.     賣火柴的小女孩,,手里有一堆火柴。  
  13. </div>  
  14.   
  15. <hr>  
  16.   
  17. <div>  
  18.     <form name="form1" action="payment.php" method="post">  
  19.         <lable>數(shù)量:</lable>  
  20.         <input name="qty" value="1" />  
  21.         <input name="submit" type="submit" value="購買" />  
  22.     </form>  
  23. </div>  
  24.   
  25. </body>  
  26. </html>  


payment.PHP


  1. <?php  
  2. use EasyWeChat\Foundation\Application;  
  3. use EasyWeChat\Payment\Order;  
  4.   
  5. $product = [  
  6.     'body'             => '一盒火柴',  
  7.     'trade_type'       => 'JSAPI',  
  8.     'out_trade_no'     => 'ERP'.time(),  
  9.     'total_fee'        => 1,  
  10.     'notify_url'       => 'http://test./wechat/notify/',  
  11.     'openid'           => $_SESSION['openid'],  
  12.     'attach'           => '賣火柴的小女孩',  
  13. ];  
  14.   
  15. $order = new Order($product);  
  16.   
  17. $app = new Application(config('wechat'));  
  18. $js = $app->js;  
  19. $payment = $app->payment;  
  20. $result = $payment->prepare($order);  
  21. $prepayId = null;  
  22. if ($result->return_code == 'SUCCESS' && $result->result_code == 'SUCCESS'){  
  23.     $prepayId = $result->prepay_id;  
  24. else {  
  25.     var_dump($result);  
  26.     die("出錯了,。");  
  27. }  
  28. $config = $payment->configForJSSDKPayment($prepayId);  
  29. ?>  
  30. <!DOCTYPE html>  
  31. <html lang="en">  
  32. <head>  
  33.     <meta charset="UTF-8">  
  34.     <title>購買支付</title>  
  35. </head>  
  36. <body>  
  37.   
  38. <h1>一盒火柴</h1>  
  39.   
  40. <div>  
  41.     <p>您購買了“一盒火柴”,,總價格: 0.01元。</p>  
  42.     <p>數(shù)量:1盒,。</p>  
  43. </div>  
  44.   
  45. <hr>  
  46.   
  47. <div>  
  48.     <input name="button" id="btnPay" type="button" value="支付" />  
  49. </div>  
  50.   
  51.   
  52.   
  53.   
  54. <script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js" type="text/javascript" charset="utf-8"></script>  
  55. <script type="text/javascript" charset="utf-8">  
  56.     wx.config({{ $js->config(array('chooseWXPay')) }});  
  57. </script>  
  58. <script>  
  59.     $(function(){  
  60.   
  61.         $(".btn-do-it").click(function(){  
  62.             wx.chooseWXPay({  
  63.                 timestamp: "{{$config['timestamp']}}"// 支付簽名時間戳,,注意微信jssdk中的所有使用timestamp字段均為小寫。但最新版的支付后臺生成簽名使用的timeStamp字段名需大寫其中的S字符  
  64.                 nonceStr: '{{$config['nonceStr']}}'// 支付簽名隨機串,不長于 32 位  
  65.                 package: '{{$config['package']}}'// 統(tǒng)一支付接口返回的prepay_id參數(shù)值,,提交格式如:prepay_id=***)  
  66.                 signType: '{{$config['signType']}}'// 簽名方式,,默認為'SHA1',使用新版支付需傳入'MD5'  
  67.                 paySign: '{{$config['paySign']}}'// 支付簽名  
  68.                 success: function (res) {  
  69.                     // 支付成功后的回調(diào)函數(shù)  
  70.                     if(res.err_msg == "get_brand_wcpay_request:ok" ) {  
  71.                         alert('支付成功,。');  
  72.                         window.location.href="{{url("wechat/pay_ok")}}";  
  73.                     }else{  
  74.                         //alert(res.errMsg);  
  75.                         alert("支付失敗,,請返回重試。");  
  76.                     }  
  77.                 },  
  78.                 fail: function (res) {  
  79.                     alert("支付失敗,,請返回重試,。");  
  80.                 }  
  81.             });  
  82.         });  
  83.     });  
  84. </script>  
  85. </body>  
  86. </html>  


這些是偽代碼,payment.php并沒有對product.html傳來的商品信息做處理,。

其實只要看payment.php文件應該知道怎么做了,。


其它就兩點。a,,獲取$config,b,, 自己寫wx.chooseWXPay,。

其它的看easywechat文檔就行了。






-END-


  


    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點,。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,謹防詐騙,。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多