<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        微信小程序webview組件交互,內(nèi)聯(lián)h5頁面并網(wǎng)頁實現(xiàn)微信支付實現(xiàn)解析

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:52:16
        文檔

        微信小程序webview組件交互,內(nèi)聯(lián)h5頁面并網(wǎng)頁實現(xiàn)微信支付實現(xiàn)解析

        微信小程序webview組件交互,內(nèi)聯(lián)h5頁面并網(wǎng)頁實現(xiàn)微信支付實現(xiàn)解析:前言 小程序支持webview以后,我們開發(fā)的好多h5頁面,就可以直接在小程序里使用了,比如我們開發(fā)的微信商城,文章詳情頁,商品詳情頁,就可以開發(fā)一套,多處使用了。我們今天來講一講。在小程序的webview里實現(xiàn)微信支付功能。因為微信不允許在小程序的web
        推薦度:
        導(dǎo)讀微信小程序webview組件交互,內(nèi)聯(lián)h5頁面并網(wǎng)頁實現(xiàn)微信支付實現(xiàn)解析:前言 小程序支持webview以后,我們開發(fā)的好多h5頁面,就可以直接在小程序里使用了,比如我們開發(fā)的微信商城,文章詳情頁,商品詳情頁,就可以開發(fā)一套,多處使用了。我們今天來講一講。在小程序的webview里實現(xiàn)微信支付功能。因為微信不允許在小程序的web

        前言

        小程序支持webview以后,我們開發(fā)的好多h5頁面,就可以直接在小程序里使用了,比如我們開發(fā)的微信商城,文章詳情頁,商品詳情頁,就可以開發(fā)一套,多處使用了。我們今天來講一講。在小程序的webview里實現(xiàn)微信支付功能。因為微信不允許在小程序的webview里直接調(diào)起微信支付。所以我們這節(jié)課就要涉及到小程序和webview的交互了。

        老規(guī)矩先看效果。

        因為這里涉及的東西比較多,錄gif太多,沒法上傳,我就錄制了一段視頻出來。

        https://v.qq.com/x/page/t0913iprnay.html

        原理

        先說下實現(xiàn)原理吧,實現(xiàn)原理就是我們在webview的h5頁面里實現(xiàn)下單功能,然后點擊支付按鈕,我們點擊支付按鈕的時候會跳轉(zhuǎn)到小程序頁面,把訂單號,訂單總金額,傳遞到小程序里,然后小程序里使用訂單號和訂單金額去調(diào)起微信支付,實現(xiàn)付款,付款成功或者失敗時都會有回調(diào)。我們再把對應(yīng)的回調(diào)傳遞給webview,刷新webview里的訂單和支付狀態(tài)。

        一,定義webview顯示h5頁面

        關(guān)于webview的使用,我就不做講解了,官方文檔里寫的很清楚,用起來也很簡單。

        https://developers.weixin.qq.com/miniprogram/dev/component/web-view.html

        webview很簡單,就是用一個webview組件,顯示我們的網(wǎng)頁。

        二,定義h5頁面

        我這里啟動一個本地服務(wù)器,用來展示一個簡單的h5頁面。

        上圖是我在瀏覽器里顯示的效果。

        接下來我們在小程序的webview里顯示這個頁面,也很簡單,只需要把我們的src定義為我們的本地網(wǎng)頁鏈接就可以了。

        這里有一點需要注意

        因為我們是本地鏈接,我們需要到開發(fā)者工具里把這一項給勾選。

        三,來看下h5頁面代碼

        <!DOCTYPE html>
        <html lang="en">
        <head>
         <meta charset="UTF-8">
         <title>小程序內(nèi)嵌webview</title>
         <style>
         .btn {
         font-size: 70px;
         color: red;
         }
         </style>
        </head>
        <body>
        <h1>我是webview里的h5頁面</h1>
        <a id="desc" class="btn" onclick="jumpPay()">點擊支付</a>
        
        <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
        <script>
         console.log(location.href);
         let payOk = getQueryVariable("payOk");
         console.log("payOk", payOk)
         if(payOk){//支付成功
         document.getElementById('desc').innerText="支持成功"
         document.getElementById('desc').style.color="green"
         }else{
         document.getElementById('desc').innerText="點擊支付"
         }
         //獲取url里攜帶的參數(shù)
         function getQueryVariable(variable) {
         var query = window.location.search.substring(1);
         var vars = query.split("&");
         for (var i = 0; i < vars.length; i++) {
         var pair = vars[i].split("=");
         if (pair[0] == variable) {
         return pair[1];
         }
         }
         return (false);
         }
         function jumpPay() {
         let orderId = Date.now();//這里用當(dāng)前時間戳做訂單號(后面使用你自己真實的訂單號)
         let money = 1;//訂單總金額(單位分)
         let payData = {orderId: orderId, money: money};
        
         let payDataStr = JSON.stringify(payData);//因為要吧參數(shù)傳遞給小程序,所以這里需要轉(zhuǎn)為字符串
         const url = `../wePay/wePay?payDataStr=${payDataStr}`;
         wx.miniProgram.navigateTo({
         url: url
         });
         // console.log("點擊了去支付", url)
         console.log("點擊了去支付")
         }
        </script>
        </body>
        </html>

        h5代碼這里不做具體講解,只簡單說下。我們就是在點擊支付按鈕時,用當(dāng)前時間戳做為訂單號(因為訂單號要保證唯一),然后傳一個訂單金額(單位分),這里節(jié)約起見,就傳1分錢吧,花的是自己的錢,心疼。。

        關(guān)鍵點說一下

        1, 必須引入jweixin,才可以實現(xiàn)h5跳轉(zhuǎn)小程序。

        <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>

        2,跳轉(zhuǎn)到小程序頁面的方法

        const url = `../wePay/wePay?payDataStr=${payDataStr}`;
        wx.miniProgram.navigateTo({
         url: url
         });

        這里要和你小程序的頁面保持一致。payDataStr是我們攜帶的參數(shù)

        四,小程序支付頁

        來看下我們的小程序支付頁

        小程序支付頁功能很簡單,就是來接收我們h5傳過訂單號和訂單金額。然后去調(diào)起微信支付,實現(xiàn)支付。支付成功和支付失敗都有對應(yīng)的回調(diào)。

        支付我們這里實用的小程序云開發(fā)來實現(xiàn)的支付,核心代碼只有10行。由于支付不是本節(jié)的重點,所以這里不做具體講解。感

        興趣的同學(xué)可以去看我寫的文章和我錄的視頻

        小程序支付文章:https://www.jianshu.com/p/2b391df055a9

        小程序支付視頻:https://edu.csdn.net/course/play/25701/310742

        下面把小程序接收參數(shù)和支付的完整代碼貼出來給大家

        Page({
         //h5傳過來的參數(shù)
         onLoad: function(options) {
         console.log("webview傳過來的參數(shù)", options)
         //字符串轉(zhuǎn)對象
         let payData = JSON.parse(options.payDataStr)
         console.log("orderId", payData.orderId)
        
         let that = this;
         wx.cloud.callFunction({
         name: "pay",
         data: {
         orderId: payData.orderId,
         money: payData.money
         },
         success(res) {
         console.log("獲取成功", res)
         that.goPay(res.result);
         },
         fail(err) {
         console.log("獲取失敗", err)
         }
         })
         },
        
         //微信支付
         goPay(payData) {
         wx.requestPayment({
         timeStamp: payData.timeStamp,
         nonceStr: payData.nonceStr,
         package: payData.package,
         signType: 'MD5',
         paySign: payData.paySign,
         success(res) {
         console.log("支付成功", res)
         //你可以在這里支付成功以后,再跳會webview頁,并把支付成功狀態(tài)傳回去
         wx.navigateTo({
         url: '../webview/webview?payOk=true',
         })
         },
         fail(res) {
         console.log("支付失敗", res)
         }
         })
         }
        })

        代碼里注釋很清楚,這里有一點,就是我們支付成功后,需要告訴h5我們支付成功了,通知h5去刷新訂單或者支付狀態(tài)。

        到這里我們就完整的實現(xiàn)了小程序webview展示h5頁面,并且做到了h5和小程序的交互,實現(xiàn)了小程序webview的支付功能。
        是不是很簡單呢。

        源碼地址

        https://github.com/qiushi123/xiaochengxu_demos

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        微信小程序webview組件交互,內(nèi)聯(lián)h5頁面并網(wǎng)頁實現(xiàn)微信支付實現(xiàn)解析

        微信小程序webview組件交互,內(nèi)聯(lián)h5頁面并網(wǎng)頁實現(xiàn)微信支付實現(xiàn)解析:前言 小程序支持webview以后,我們開發(fā)的好多h5頁面,就可以直接在小程序里使用了,比如我們開發(fā)的微信商城,文章詳情頁,商品詳情頁,就可以開發(fā)一套,多處使用了。我們今天來講一講。在小程序的webview里實現(xiàn)微信支付功能。因為微信不允許在小程序的web
        推薦度:
        標(biāo)簽: 微信 微信支付 小程序
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 思思久久99热免费精品6| 久久精品国产亚洲AV久| 羞羞视频免费网站入口| 天天摸天天碰成人免费视频| 亚洲第一二三四区| 99久久国产热无码精品免费 | 亚洲色精品三区二区一区| 免费精品国偷自产在线在线 | 国产午夜无码视频免费网站| 亚洲精品无码mⅴ在线观看| 日本高清免费不卡视频| 理论亚洲区美一区二区三区| 啊灬啊灬别停啊灬用力啊免费看| 亚洲av无码成人精品区一本二本| 四虎影视精品永久免费| 日韩大片在线永久免费观看网站| 国产午夜亚洲不卡| 小草在线看片免费人成视久网| 亚洲第一香蕉视频| 在线A级毛片无码免费真人 | 亚洲va在线va天堂va四虎| 日本人成在线视频免费播放| 亚洲欧洲日本天天堂在线观看| 成人A级毛片免费观看AV网站| 亚洲av永久无码精品秋霞电影秋| 亚洲女同成人AⅤ人片在线观看| 皇色在线免费视频| 亚洲国产成人久久三区| 国产成人涩涩涩视频在线观看免费 | 国产亚洲国产bv网站在线| 国产午夜免费秋霞影院| 高清永久免费观看| 777亚洲精品乱码久久久久久| 国内一级一级毛片a免费| 4hu四虎免费影院www| 亚洲一级黄色大片| 亚洲免费日韩无码系列 | 国产黄色一级毛片亚洲黄片大全| 久久99免费视频| 亚洲国产精品无码久久| 亚洲av之男人的天堂网站|