最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序詳解如何實(shí)現(xiàn)付款功能

 更新時(shí)間:2022年08月02日 16:21:13   作者:低代碼布道師  
日常小程序里很多是需要付款的,那如何在小程序里實(shí)現(xiàn)付款呢?本篇就帶著大家體驗(yàn)一下,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值

1 支付場(chǎng)景

我們梳理一下支付場(chǎng)景是什么樣子的,首先可以瀏覽商品,然后在商品的詳情頁(yè)里進(jìn)行結(jié)算。結(jié)算的主要目的是生成訂單,訂單生成好之后就可以進(jìn)行支付。

支付其實(shí)是先向微信支付提交一個(gè)在線訂單,訂單提交成功之后就可以調(diào)用支付接口來(lái)拉起支付界面。

拉起支付界面之后我們需要按照提示的金額進(jìn)行付費(fèi),付費(fèi)成功后我們更新一下訂單的狀態(tài),變成已付款。

2 創(chuàng)建數(shù)據(jù)源

按照分析的場(chǎng)景我們需要?jiǎng)?chuàng)建數(shù)據(jù)源,一共是兩個(gè)數(shù)據(jù)源,分別是商品數(shù)據(jù)源和訂單數(shù)據(jù)源。

2.1 商品數(shù)據(jù)源

商品的話有商品的名稱、價(jià)格、詳情,按照設(shè)計(jì)創(chuàng)建商品數(shù)據(jù)源并且建立對(duì)應(yīng)的字段

2.2 訂單數(shù)據(jù)源

訂單的話有訂單編號(hào),支付金額,是否支付,openid

3 創(chuàng)建連接器

如果我們希望使用微信支付,需要先創(chuàng)建連接器。在控制臺(tái)點(diǎn)擊連接器,點(diǎn)擊新建連接器

選擇微信支付

選擇企業(yè)主體的小程序和商戶號(hào),就完成了連接器的創(chuàng)建

微信支付一共提供了四個(gè)方法,分別是統(tǒng)一下單、查詢訂單、關(guān)閉訂單、下載對(duì)賬單

4 創(chuàng)建應(yīng)用

點(diǎn)擊控制臺(tái)的應(yīng)用菜單,點(diǎn)擊新建應(yīng)用,新建自定義應(yīng)用

輸入應(yīng)用的名稱,選擇小程序

點(diǎn)擊空白頁(yè)面,創(chuàng)建首頁(yè)

https://pan.baidu.com/s/1nfwR1rIY8oeceXhwS4n1cw 提取碼: 1f9f 

在頁(yè)面旁邊點(diǎn)擊+號(hào),先創(chuàng)建一個(gè)商品詳情頁(yè)面

接著再創(chuàng)建一個(gè)訂單頁(yè)

5 功能開(kāi)發(fā)

5.1 首頁(yè)

首頁(yè)我們放置一個(gè)數(shù)據(jù)列表組件用來(lái)顯示商品的列表信息

然后給文本組件綁定對(duì)應(yīng)的字段

選中for循環(huán)的普通容器,設(shè)置點(diǎn)擊事件,跳轉(zhuǎn)到商品詳情頁(yè)。跳轉(zhuǎn)的時(shí)候需要先新建一個(gè)頁(yè)面參數(shù),然后綁定當(dāng)前記錄的數(shù)據(jù)標(biāo)識(shí)

5.2 商品詳情頁(yè)

商品詳情頁(yè)我們使用數(shù)據(jù)詳情組件開(kāi)發(fā),加入數(shù)據(jù)詳情組件。選擇數(shù)據(jù)源模型,設(shè)置篩選條件,并且綁定好字段

給頁(yè)面增加一個(gè)按鈕,修改標(biāo)題為結(jié)算

我們點(diǎn)擊結(jié)算按鈕的時(shí)候要調(diào)用低碼方法,完成訂單的創(chuàng)建。這里的需要傳入訂單的金額,低碼方法調(diào)用新增即可

export default async function({event, data}) {
  const resutl = await app.cloud.callModel({
    name:'dd_98jydrk',
    methodName:'wedaCreate',
    params:{
      ddje:data.target,
      openid:app.dataset.state.openid,
      sfzf:false
    }
  })
  app.navigateTo({
    pageId: 'u_ding_dan_ye',    // 頁(yè)面 Id 
    params: {id: resutl._id},
});
}

這里的openid是獲取的全局變量的值,具體全局變量的設(shè)置,啟動(dòng)方法獲取用戶的openid咱們?cè)跉v史文章里反復(fù)講解過(guò)多次了,可以查看過(guò)往的教程。

低碼方法定義好之后我們就可以給組件上設(shè)置點(diǎn)擊事件了,參數(shù)傳入我們的金額即可

5.3 訂單頁(yè)

訂單頁(yè)先用數(shù)據(jù)詳情組件展示訂單的詳情,放置一個(gè)支付按鈕來(lái)調(diào)用連接器的統(tǒng)一下單方法,調(diào)用成功后再調(diào)用支付接口拉起付款界面

先增加一個(gè)參數(shù)變量,接收我們?cè)谏唐吩斍轫?yè)傳入的參數(shù)

添加一個(gè)數(shù)據(jù)詳情組件,數(shù)據(jù)源選擇訂單,篩選條件設(shè)置數(shù)據(jù)標(biāo)識(shí)等于我們的參數(shù)變量

將訂單中的字段依次綁定到文本組件中

增加一個(gè)按鈕組件,修改標(biāo)題設(shè)置為支付

因?yàn)槲覀冞€需要在支付頁(yè)面獲取訂單的詳細(xì)信息,所以我們需要?jiǎng)?chuàng)建一個(gè)模型變量來(lái)根據(jù)參數(shù)變量獲取具體的值

在低碼編輯器里創(chuàng)建一個(gè)支付的低碼方法

export default async function ({ event, data }) {
  const result = await app.cloud.callConnector({
    name: 'wxzf_82kvbum',
    methodName: 'unifiedOrder',
    params: {
      body: "訂單示例-支付訂單",
      outTradeNo: $page.dataset.state.order.ddbh,//傳入訂單編號(hào)
      totalFee: $page.dataset.state.order.ddje,//傳入支付金額
      openid: $page.dataset.state.order.openid//傳入用戶的openid
    }, // 方法入?yún)?
  })
  let pay = result.payment;//獲取統(tǒng)一下單后的返回結(jié)果
  $app.requestPayment(//調(diào)用支付接口完成支付
    {
      timeStamp: pay.timeStamp,
      nonceStr: pay.nonceStr,
      package: pay.package,
      signType: pay.signType,
      paySign: pay.paySign,
      success(res) {
        console.log(res)
      },
      fail(res) {
        console.log(res)
      }
    }
  );
}

這里沒(méi)有解決的就是支付成功更新訂單狀態(tài)的問(wèn)題,實(shí)測(cè)在支付的回調(diào)函數(shù)里不能直接調(diào)用數(shù)據(jù)模型的方法,如果有測(cè)試成功的同學(xué)可以在評(píng)論區(qū)留言進(jìn)行討論

總結(jié)

我們本篇利用一定的篇幅講解了一個(gè)完整的支付流程,支付還是比較常見(jiàn)的場(chǎng)景,有了支付功能交易就可以形成一個(gè)閉環(huán),還不會(huì)的同學(xué)照著教程做一下吧。

到此這篇關(guān)于微信小程序詳解如何實(shí)現(xiàn)付款功能的文章就介紹到這了,更多相關(guān)小程序付款功能內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 原生JS實(shí)現(xiàn)多個(gè)小球碰撞反彈效果示例

    原生JS實(shí)現(xiàn)多個(gè)小球碰撞反彈效果示例

    這篇文章主要介紹了原生JS實(shí)現(xiàn)多個(gè)小球碰撞反彈效果,結(jié)合完整實(shí)例形式分析了javascript實(shí)現(xiàn)小球碰撞的相關(guān)數(shù)值計(jì)算、隨機(jī)數(shù)生成、事件響應(yīng)等操作技巧,需要的朋友可以參考下
    2018-01-01
  • JavaScript的懶加載處理的方式

    JavaScript的懶加載處理的方式

    懶加載是一種優(yōu)化技術(shù),它可以延遲加載某些資源,直到它們真正需要被使用的時(shí)候才進(jìn)行加載,實(shí)現(xiàn)懶加載的方法一般分為兩種:基于 Intersection Observer API 的懶加載和基于滾動(dòng)事件的懶加載,本文給大家介紹JavaScript的懶加載處理方式,感興趣的朋友一起看看吧
    2023-10-10
  • JS實(shí)現(xiàn)JSON.stringify的實(shí)例代碼講解

    JS實(shí)現(xiàn)JSON.stringify的實(shí)例代碼講解

    JSON.stringify是瀏覽器高版本帶的一個(gè)將JS的Objtect對(duì)象轉(zhuǎn)換為JSON字符串的一個(gè)方法,不過(guò)再I(mǎi)E6下面,并不存在JSON這一對(duì)象,因此,用到此方法時(shí),需要寫(xiě)一套兼容性的代碼。接下來(lái)通過(guò)本文給大家分享JS實(shí)現(xiàn)JSON.stringify的實(shí)例代碼,需要的朋友參考下吧
    2017-02-02
  • 前端大文件分片MinIO上傳的詳細(xì)代碼

    前端大文件分片MinIO上傳的詳細(xì)代碼

    這篇文章主要給大家介紹了關(guān)于前端大文件分片MinIO上傳的詳細(xì)代碼,Minio支持分片上傳大文件,這個(gè)功能可以讓用戶將大文件劃分成小塊,然后在多個(gè)并行的HTTP請(qǐng)求中上傳這些小塊,從而提高上傳速度和穩(wěn)定性,需要的朋友可以參考下
    2024-09-09
  • js內(nèi)置對(duì)象 學(xué)習(xí)筆記

    js內(nèi)置對(duì)象 學(xué)習(xí)筆記

    今天系統(tǒng)的學(xué)了一下javascript的內(nèi)置對(duì)象。
    2011-08-08
  • javascript動(dòng)畫(huà)淺析

    javascript動(dòng)畫(huà)淺析

    最近一直在弄手機(jī)端的游戲,接觸到各種動(dòng)畫(huà)。加之對(duì)之前的自己那個(gè)動(dòng)畫(huà)類(lèi)不滿意,就有心想寫(xiě)個(gè)新的。然后翻看各種博客,查資料。也學(xué)到一些新的東西
    2012-08-08
  • JavaScript電話號(hào)碼格式化的多種實(shí)現(xiàn)方式

    JavaScript電話號(hào)碼格式化的多種實(shí)現(xiàn)方式

    本文希望通過(guò)一道簡(jiǎn)單的題目,讓剛接觸JavaScript的新手們了解一個(gè)合格的前端程序員需要具備哪些素質(zhì),文章給大家介紹了JavaScript電話號(hào)碼格式化的多種實(shí)現(xiàn)方式,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-11-11
  • JavaScript狀態(tài)模式及適配器模式使用講解

    JavaScript狀態(tài)模式及適配器模式使用講解

    這篇文章主要介紹了理解JavaScript中的狀態(tài)模式及適配器模式,適配器模式即Adapter Pattern,是作為兩個(gè)不兼容的接口之間的橋梁。這種類(lèi)型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,下文更多相關(guān)介紹需要的小伙伴可以參考一下
    2022-12-12
  • 微信小程序自定義組件的實(shí)現(xiàn)方法及自定義組件與頁(yè)面間的數(shù)據(jù)傳遞問(wèn)題

    微信小程序自定義組件的實(shí)現(xiàn)方法及自定義組件與頁(yè)面間的數(shù)據(jù)傳遞問(wèn)題

    這篇文章主要介紹了微信小程序自定義組件的實(shí)現(xiàn)方法及自定義組件與頁(yè)面間的數(shù)據(jù)傳遞 ,需要的朋友可以參考下
    2018-10-10
  • 在網(wǎng)頁(yè)里看flash的trace數(shù)據(jù)的js類(lèi)

    在網(wǎng)頁(yè)里看flash的trace數(shù)據(jù)的js類(lèi)

    我的js類(lèi)jdhcn.js中的一個(gè)flashDebug方法
    2009-01-01

最新評(píng)論

新干县| 肇庆市| 贡嘎县| 蒙自县| 龙岩市| 遂宁市| 于田县| 翁牛特旗| 南溪县| 兴仁县| 繁昌县| 曲麻莱县| 青铜峡市| 仁寿县| 綦江县| 乐安县| 大余县| 达拉特旗| 尼木县| 余江县| 蓬莱市| 日照市| 吉安市| 临洮县| 喜德县| 华容县| 益阳市| 麦盖提县| 昌宁县| 伊金霍洛旗| 思南县| 阳原县| 新邵县| 溧水县| 布拖县| 遂平县| 麻栗坡县| 句容市| 上蔡县| 淳化县| 鹿泉市|