10行程式碼實現微信小程式支付功能,使用小程式雲開發實現小程式支付功能(
前面給大家講過一個藉助小程式雲開發實現微信支付的,但是那個操作稍微有點繁瑣,並且還會經常出現問題,今天就給大家講一個簡單的,並且藉助官方支付api實現小程式支付功能。
傳送門
老規矩,先看本節效果圖
我們實現這個支付功能完全是藉助小程式雲開發實現的,不用搭建自己的伺服器,不用買域名,不用備案域名,不用支援https。只需要一個簡單的雲函式,就可以輕鬆的實現微信小程式支付功能。
核心程式碼就下面這些
一,建立一個雲開發小程式
關於如何建立雲開發小程式,這裡我就不再做具體講解。不知道怎麼建立雲開發小程式的同學,可以去翻看我之前的文章,或者看下我錄製的影片:
建立雲開發小程式有幾點注意的
1,一定不要忘記在app.js裡初始化雲開發環境。
2,建立完雲函式後,一定要記得上傳
二, 建立支付的雲函式
1,建立雲函式pay
三,引入三方依賴tenpay
我們這裡引入三方依賴的目的,是建立我們支付時需要的一些引數。我們安裝依賴是使用裡npm 而npm必須安裝node,關於如何安裝node,我這裡不做講解,百度一下,網上一大堆。
1,首先右鍵pay,然後選擇在終端中開啟
2,我們使用npm來安裝這個依賴。
在命令列裡執行 npm i tenpay
安裝完成後,我們的pay雲函式會多出一個package.json 檔案
到這裡我們的tenpay依賴就安裝好了。
四,編寫雲函式pay
完整程式碼如下
//雲開發實現支付
const cloud = require('wx-server-sdk')
cloud.init()
//1,引入支付的三方依賴
const tenpay = require('tenpay');
//2,配置支付資訊
const config = {
appid: '你的小程式appid',
mchid: '你的微信商戶號',
partnerKey: '微信支付安全金鑰',
notify_url: '支付回撥網址,這裡可以先隨意填一個網址',
spbill_create_ip: '127.0.0.1' //這裡填這個就可以
};
exports.main = async(event, context) => {
const wxContext = cloud.getWXContext()
let {
orderid,
money
} = event;
//3,初始化支付
const api = tenpay.init(config);
let result = await api.getPayParams({
out_trade_no: orderid,
body: '商品簡單描述',
total_fee: money, //訂單金額(分),
openid: wxContext.OPENID //付款使用者的openid
});
return result;
}
一定要注意把appid,mchid,partnerKey換成你自己的。
到這裡我們獲取小程式支付所需引數的雲函式程式碼就編寫完成了。
不要忘記上傳這個雲函式。
出現下圖就代表上傳成功
五,寫一個簡單的頁面,用來提交訂單,呼叫pay雲函式。
這個頁面很簡單,
1,自己隨便編寫一個訂單號(這個訂單號要大於6位)
2,自己隨便填寫一個訂單價(單位是分)
3,點選按鈕,呼叫pay雲函式。獲取支付所需引數。
下圖是官方支付api所需要的一些必須引數。
下圖是我們呼叫pay雲函式獲取的引數,和上圖所需要的是不是一樣。
六,呼叫wx.requestPayment實現支付
下圖是官方的示例程式碼
這裡不在做具體講解了,把完整程式碼給大家貼出來
// pages/pay/pay.js
Page({
//提交訂單
formSubmit: function(e) {
let that = this;
let formData = e.detail.value
console.log('form發生了submit事件,攜帶資料為:', formData)
wx.cloud.callFunction({
name: "pay",
data: {
orderid: "" + formData.orderid,
money: formData.money
},
success(res) {
console.log("提交成功", res.result)
that.pay(res.result)
},
fail(res) {
console.log("提交失敗", res)
}
})
},
//實現小程式支付
pay(payData) {
//官方標準的支付方法
wx.requestPayment({
timeStamp: payData.timeStamp,
nonceStr: payData.nonceStr,
package: payData.package, //統一下單介面返回的 prepay_id 格式如:prepay_id=***
signType: 'MD5',
paySign: payData.paySign, //簽名
success(res) {
console.log("支付成功", res)
},
fail(res) {
console.log("支付失敗", res)
},
complete(res) {
console.log("支付完成", res)
}
})
}
})
到這裡,雲開發實現小程式支付的功能就完整實現了。
實現效果
1,調起支付鍵盤
2,支付完成
3,log日誌,可以看出不同支付狀態的回撥
上圖是支付成功的回撥,我們可以在支付成功回撥時,改變訂單支付狀態。
下圖是支付失敗的回撥,
下圖是支付完成的狀態。
到這裡我們就輕鬆的實現了微信小程式的支付功能了。是不是很簡單啊。
如果感覺圖文不是很好理解,我後面會錄製影片講解。
原始碼地址:
014雲開發實現小程式支付,就是我們的原始碼,如果你匯入原始碼或者學習過程中有任何問題,都可以留言或者私信我
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3486/viewspace-2823512/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 乾貨:如何藉助小程式雲開發實現小程式支付功能(含原始碼)原始碼
- 微信小程式 遮罩功能實現微信小程式遮罩
- 微信,支付寶小程式實現原理概述
- 微信小程式實現換膚功能微信小程式
- nodejs實現微信小程式支付功能及相關問題總結NodeJS微信小程式
- 微信小程式支付接入實戰微信小程式
- 支付寶小程式對比微信小程式微信小程式
- 微信小程式功能之全屏滾動效果的實現程式碼微信小程式
- 微信小程式之支付微信小程式
- 微信小程式-實現實時聊天功能 前端部分微信小程式前端
- 微信小程式如何實現自動退款功能?微信小程式
- 微信小程式 簡易搜尋功能實現微信小程式
- 藉助小程式雲開發實現小程式的登陸註冊功能
- 當微信小程式遇上TensorFlow:小程式實現微信小程式
- 微信小程式的支付流程微信小程式
- # 支付寶小程式微信小程式分享轉發微信小程式
- 實現小程式canvas拖拽功能Canvas
- 從微信小程式開發者工具原始碼看實現原理(二)- - 小程式技術實現微信小程式原始碼
- 微信小程式開發常用功能微信小程式
- 微信小程式實現軌跡回放,微信原生小程式,基於uniapp的小程式?微信小程式APP
- 煙臺小程式開發——微信小程式功能特點都有哪些微信小程式
- 微信小程式之繫結銀行卡功能實現微信小程式
- 微信小程式 傳送模板訊息的功能實現微信小程式
- 微信小程式雲開發如何實現微信支付,業務邏輯又怎樣才算可靠微信小程式
- 使用taro+canvas實現微信小程式的圖片分享功能Canvas微信小程式
- php微信支付介面開發的實現程式PHP
- 【微信小程式canvas】實現小程式手寫板使用者簽名(附程式碼)微信小程式Canvas
- 小程式實現實時聊天IM功能
- 雲原生微信小程式開發實戰微信小程式
- 微信小程式--聊天室小程式(雲開發)微信小程式
- Day10-微信小程式實戰-交友小程式-建立friendList欄位實現好友關係(新增好友功能)--內附程式碼微信小程式
- 微信小程式實現全域性搜尋程式碼高亮微信小程式
- IDEA支付寶小程式開發流程——支付Idea
- 微信小程式使用同聲傳譯實現語音識別功能微信小程式
- 微信小程式複製功能微信小程式
- Laravel 下微信小程式支付 API 配置Laravel微信小程式API
- Spring Boot中的微信支付(小程式)Spring Boot
- 前端呼叫微信小程式的支付流程前端微信小程式