<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
我們梳理一下支付場景是什麼樣子的,首先可以瀏覽商品,然後在商品的詳情頁裡進行結算。結算的主要目的是生成訂單,訂單生成好之後就可以進行支付。
支付其實是先向微信支付提交一個線上訂單,訂單提交成功之後就可以呼叫支付介面來拉起支付介面。
拉起支付介面之後我們需要按照提示的金額進行付費,付費成功後我們更新一下訂單的狀態,變成已付款。
按照分析的場景我們需要建立資料來源,一共是兩個資料來源,分別是商品資料來源和訂單資料來源。
商品的話有商品的名稱、價格、詳情,按照設計建立商品資料來源並且建立對應的欄位
訂單的話有訂單編號,支付金額,是否支付,openid
如果我們希望使用微信支付,需要先建立聯結器。在控制檯點選聯結器,點選新建聯結器
選擇微信支付
選擇企業主體的小程式和商戶號,就完成了聯結器的建立
微信支付一共提供了四個方法,分別是統一下單、查詢訂單、關閉訂單、下載對賬單
點選控制檯的應用選單,點選新建應用,新建自定義應用
輸入應用的名稱,選擇小程式
點選空白頁面,建立首頁
https://pan.baidu.com/s/1nfwR1rIY8oeceXhwS4n1cw 提取碼: 1f9f
在頁面旁邊點選+
號,先建立一個商品詳情頁面
接著再建立一個訂單頁
首頁我們放置一個資料列表元件用來顯示商品的列表資訊
然後給文字元件繫結對應的欄位
選中for迴圈的普通容器,設定點選事件,跳轉到商品詳情頁。跳轉的時候需要先新建一個頁面引數,然後繫結當前記錄的資料標識
商品詳情頁我們使用資料詳情元件開發,加入資料詳情元件。選擇資料來源模型,設定篩選條件,並且繫結好欄位
給頁面增加一個按鈕,修改標題為結算
我們點選結算按鈕的時候要呼叫低碼方法,完成訂單的建立。這裡的需要傳入訂單的金額,低碼方法呼叫新增即可
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', // 頁面 Id params: {id: resutl._id}, }); }
這裡的openid是獲取的全域性變數的值,具體全域性變數的設定,啟動方法獲取使用者的openid咱們在歷史文章裡反覆講解過多次了,可以檢視過往的教學。
低碼方法定義好之後我們就可以給元件上設定點選事件了,引數傳入我們的金額即可
訂單頁先用資料詳情元件展示訂單的詳情,放置一個支付按鈕來呼叫聯結器的統一下單方法,呼叫成功後再呼叫支付介面拉起付款介面
先增加一個引數變數,接收我們在商品詳情頁傳入的引數
新增一個資料詳情元件,資料來源選擇訂單,篩選條件設定資料標識等於我們的引數變數
將訂單中的欄位依次繫結到文字元件中
增加一個按鈕元件,修改標題設定為支付
因為我們還需要在支付頁面獲取訂單的詳細資訊,所以我們需要建立一個模型變數來根據引數變數獲取具體的值
在低碼編輯器裡建立一個支付的低碼方法
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,//傳入訂單編號 totalFee: $page.dataset.state.order.ddje,//傳入支付金額 openid: $page.dataset.state.order.openid//傳入使用者的openid }, // 方法入參 }) let pay = result.payment;//獲取統一下單後的返回結果 $app.requestPayment(//呼叫支付介面完成支付 { 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) } } ); }
這裡沒有解決的就是支付成功更新訂單狀態的問題,實測在支付的回撥函數裡不能直接呼叫資料模型的方法,如果有測試成功的同學可以在評論區留言進行討論
我們本篇利用一定的篇幅講解了一個完整的支付流程,支付還是比較常見的場景,有了支付功能交易就可以形成一個閉環,還不會的同學照著教學做一下吧。
到此這篇關於微信小程式詳解如何實現付款功能的文章就介紹到這了,更多相關小程式付款功能內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45