国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序內(nèi)嵌H5頁面實現(xiàn)微信支付

這篇具有很好參考價值的文章主要介紹了微信小程序內(nèi)嵌H5頁面實現(xiàn)微信支付。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

背景:

在微信H5頁面已經(jīng)實現(xiàn)了微信JSAPI的網(wǎng)頁支付,老板要求把整個業(yè)務(wù)線快速轉(zhuǎn)移到微信小程序中,作為懶惰的程序員來說,直接把頁面嵌套到小程序不就行了。說干就干,在小程序中設(shè)置好基本信息后,一預(yù)覽居然成功了,一切看來是那么順利,可到了系統(tǒng)的支付環(huán)節(jié)時,小程序是無法調(diào)用JSAPI微信支付的,難不成要重構(gòu)所有頁面轉(zhuǎn)成小程序?這可是個大工程,作為業(yè)余前端的我來說肯定搞不定。于是在網(wǎng)上就搜索了一下,確實有解決方案,樓主就花點時間給大家整理一下。

前提條件:

了解微信支付相關(guān)的接口文檔,有微信小程序的基本開發(fā)經(jīng)驗。

思路:

小程序打開H5頁面后,在需要調(diào)用微信支付的頁面用js做當(dāng)前頁面環(huán)境判斷:


var is_weixin_app = window.__wxjs_environment === 'miniprogram';

如果是在小程序中打開,則通過wx.miniProgram.navigateTo 方法跳轉(zhuǎn)到小程序的內(nèi)置頁面:


<script src="https://res2.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
if(is_weixin_app){
wx.miniProgram.navigateTo({url:'/pages/pay/pay?api_token='+api_token+'&order_id='+order_id+'&amount='+order_amount});
}

在小程序內(nèi)置頁面pay中獲取傳過來的參數(shù),做業(yè)務(wù)處理,然后調(diào)用小程序的支付接口,獲取小程序需要的關(guān)鍵支付參數(shù)(該方法可參考微信支付對接文檔:小程序支付開發(fā)指引):


'timeStamp': mydata.timeStamp,
'nonceStr': mydata.nonceStr,
'package': mydata.package,
'signType': mydata.signType,
'paySign': mydata.paySign,

小程序支付需要的openid參數(shù),這個openid和微信公眾號的openid不是相同的,所以小程序內(nèi)置app.js還需要獲取小程序的openid(微信小程序無需授權(quán)可直接根據(jù)code獲取openid,微信公開接口:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code),并將openid存在全局變量中:


App({
  onLaunch() {
    let that = this;
    wx.login({
      success (res) {
          if (res.code) {
              //發(fā)起網(wǎng)絡(luò)請求
              wx.request({
                  url: 'https://localhost/api/home/wxapp_openid', //接口地址
                  data: {
                    code: res.code
                  },
                  success: function (res){
                    that.globalData.openid = res.data.data.openid;
                  }
              })
          }
      }
  })
  
  },
  globalData: {
    userInfo: null,
    openid:''
  }
})
小程序頁面構(gòu)造截圖:
微信小程序內(nèi)嵌H5頁面實現(xiàn)微信支付

說明:index是小程序的首頁,用來打開H5的鏈接


---index.js代碼:
Page({
  data: {
    bg_url : "https://localhost"
  },
  onLoad() {
  },
})


---index.wxml代碼:
<!--index.wxml-->
<official-account></official-account>
<web-view src="{{bg_url}}"></web-view>

pay是H5鏈接支付時跳轉(zhuǎn)到的小程序支付頁面文章來源地址http://www.zghlxwxcb.cn/news/detail-512295.html


---pay.js代碼:
let order_id=0,amount=0,quotation_id=0,api_token=0;
var app = getApp();
Page({
  /**
   * 頁面的初始數(shù)據(jù)
   */
  data: {},
  /**
   * 生命周期函數(shù)--監(jiān)聽頁面加載
   */
  onLoad(options) {
    order_id=options.order_id;
    amount=options.amount;
    quotation_id=options.quotation_id;
    api_token=options.api_token;
    this.submitInfo();
  },
  submitInfo(){
    wx.showLoading({
      title: '微信支付...',
      mask: true
    });
    wx.request({
      url: 'https://localhost/api/order/pay_request', 
      data: {
        type:1,
        pay_mode:3,
        order_id: order_id,
        amount:amount,
        quotation_id:quotation_id,
        api_token:api_token,
        openid:app.globalData.openid
      },
      success: function (res) {
        wx.hideLoading();
        if (res.data.ret == "200") {
          let mydata = res.data.data.data;
          wx.requestPayment(
            {
              'timeStamp': mydata.timeStamp,
              'nonceStr': mydata.nonceStr,
              'package': mydata.package,
              'signType': mydata.signType,
              'paySign': mydata.paySign,
              'success': function (e) { //支付成功
                wx.showToast({
                  title: '支付成功',
                  icon: 'success',
                  duration: 1200,
                  mask: true,
                  success: function ()
                  {
                    setTimeout(function () {
                      wx.navigateBack(); 
                    }, 1500);
                  }
                });

              },
              'fail': function (e) { //支付取消或出錯
              //  wx.navigateBack();
              }
            })
        }
        else {
          wx.showToast({
            title: '該訂單已失效',
            icon: 'success',
            duration: 3000,
            mask: true,
            success: function () {
              setTimeout(function () {
                wx.navigateBack();
              }, 1500);
            }
          })
        }
      }
    });
  }
})

---pay.wxml代碼
<view class='body'>
<form bindsubmit="submitInfo" report-submit='true'>
<view class='body-view'><text >微信小程序支付</text></view>
<view class="btn-area">
<button type="primary" form-type="submit">確認(rèn)支付</button>
</view>
</form>
</view>
來看一下最后的效果:
微信小程序內(nèi)嵌H5頁面實現(xiàn)微信支付

到了這里,關(guān)于微信小程序內(nèi)嵌H5頁面實現(xiàn)微信支付的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 微信小程序內(nèi)嵌H5頁面獲取openid+分享功能

    主要實現(xiàn)功能:1.通過webview實現(xiàn)小程序內(nèi)嵌H5頁面 ? ? ? ? ? ? ? ? ? ? ? ? ?2.在H5頁面獲取到用戶的openid ? ? ? ? ? ? ? ? ? ? ? ? ?3.在H5頁面實現(xiàn)分享獲取到分享人的openid和被分享者的openid 代碼實現(xiàn): 1.通過webview實現(xiàn)小程序內(nèi)嵌H5頁面 傳參:在地址后面加入的參數(shù)就是我

    2024年04月23日
    瀏覽(106)
  • H5頁面內(nèi)嵌到微信小程序和APP,做分享操作

    H5頁面內(nèi)嵌到微信小程序和APP,做分享操作

    最近接到項目新需求,H5項目需要內(nèi)嵌到微信小程序和APP里,然后將H5頁面分享出去,被分享的人可以點擊消息跳轉(zhuǎn)到H5頁面。H5頁面不難,難的是要與微信小程序和APP進(jìn)行交互,因為以前也沒有接觸過,所以這里卡的時間有點長?,F(xiàn)分享出來 介紹 這里小編使用的是 uinapp 寫的

    2024年02月06日
    瀏覽(838)
  • 微信小程序webview(H5頁面)調(diào)用微信小程序支付

    1.業(yè)務(wù)描述:微信小程序商城入口進(jìn)入的頁面是商城H5頁面,在H5頁面進(jìn)行微信支付如何實現(xiàn); 2.微信小程序(webview訪問H5頁面)必須使用微信小程序支付; 如何實現(xiàn)以及實現(xiàn)方式以及支付后頁面返回功能: 商品詳情(h5頁面)--商品確認(rèn)頁(h5頁面)--收銀臺(h5頁面)(點擊調(diào)

    2024年02月11日
    瀏覽(94)
  • 微信小程序使用webview內(nèi)嵌h5頁面 wx.miniProgram.getEnv失效問題

    背景 最近接到一個h5需求,和普通的h5不一樣,這個h5頁面是嵌入到小程序中使用的,需求簡單來說就是展示一個跳轉(zhuǎn)按鈕,判斷如果是小程序環(huán)境下就進(jìn)行跳轉(zhuǎn)到其他小程序頁面。 實現(xiàn)思路 核心邏輯其實就是判斷小程序環(huán)境這一塊,我們可以直接使用wxsdk來進(jìn)行判斷小程序

    2024年02月09日
    瀏覽(168)
  • 微信小程序內(nèi)嵌h5 分享子頁面點擊進(jìn)入后是主頁面解決辦法

    通過子頁面特定的id有無進(jìn)行判斷,可根據(jù)項目自行修改

    2024年01月23日
    瀏覽(114)
  • 微信小程序webview內(nèi)嵌H5跳轉(zhuǎn)頁面后沒有返回按鈕完美解決方案

    簡單的講就是我們可以在小程序內(nèi)放置一個web-view組件來鏈接我們的HTML頁面了。 但是點擊跳轉(zhuǎn)頁面的時候。頁面左上角沒有??!返回按鈕??!導(dǎo)致回不去了,這不是搞笑的嗎。 看了下其他的小程序,發(fā)現(xiàn)如果是兩個小程序頁面跳轉(zhuǎn)的話,第二個頁面的左上角是會有返回按鈕

    2024年02月08日
    瀏覽(99)
  • 支付寶小程序內(nèi)嵌H5——支付寶小程序webview里面h5跳回道支付寶小程序頁面

    背景 小程序開發(fā)避免不了要和h5交互,怎么和h5互通信息呢? 代碼 1、h5頁面手動引入 https://appx/web-view.min.js (此鏈接僅支持在支付寶客戶端內(nèi)訪問);

    2024年02月12日
    瀏覽(21)
  • 一碼多端,一個二維碼適用微信小程序,支付寶小程序,h5頁面

    一碼多端,一個二維碼適用微信小程序,支付寶小程序,h5頁面

    最近公司研發(fā)自己的一個小程序,因為是線下樹牌,涉及到掃碼這個問題,但是掃碼又分三個端,瀏覽器掃碼,微信掃一掃,支付寶掃碼,做這個需求也是遇到了很多坑,在此記錄一下 1.掃碼進(jìn)入微信小程序 首先登錄微信公眾平臺,鏈接 https://mp.weixin.qq.com/ ?原本此處會有一

    2024年02月08日
    瀏覽(92)
  • 前端實現(xiàn)微信支付(H5,微信小程序)

    前端實現(xiàn)微信支付(H5,微信小程序)

    通常一些電商項目使用到微信支付操作,所以簡單地介紹一下微信支付的具體流程。 微信支付是微信內(nèi)置微信瀏覽器(其他瀏覽器不支持)或者微信小程序的支付接口,主要負(fù)責(zé)用戶對商家執(zhí)行支付操作的流程。 例如常見的電商在下單環(huán)節(jié),就需要通過使用微信支付接口,

    2024年02月08日
    瀏覽(25)
  • 實現(xiàn)微信小程序web-view內(nèi)嵌H5中的下載功能(大文件切片下載)

    微信小程序的開發(fā)框架是uniapp,使用uniapp腳手架搭建,其中有頁面是展示另一個小程序,在這個頁面主體內(nèi)容使用了標(biāo)簽將H5的頁面內(nèi)容展示,H5中有頁面存放了下載的路徑。點擊下載按鈕下載文件,或者預(yù)覽文件讓用戶手動保存。 如果是pc端,下載用一個 a 標(biāo)簽就很容易,但

    2024年02月10日
    瀏覽(156)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包