小程序變現必備,支付功能快速接入

從產品框架搭建到頁面設計,從數據庫建立到核心功能實現,知曉雲(cloud.minapp.com)爲小程序開發者提供了不少的便捷,例如常用的電商數據表模版和簡單好用的 API,省去了後端數據接口的設計和開發時間,快速開發自己的小程序。

回過頭來,我們再一次分析下「北江紡織牛仔新時尚」小程序,在商品展示再到購物下單的流程中,是否還缺少我們常見的支付環節呢?

實際上「北江紡織牛仔新時尚」的交易業務屬於線下操作,並不涉及到在線支付。而對於線上業務,就需要接入支付才能完成整個交易環節,今天就給大家演示如何快速在小程序裏實現在線支付功能。

小程序微信支付

小程序開發文檔已經提供了微信支付的 API:wx.requestPayment(OBJECT)

從開發文檔上看,想要成功調用微信支付 API 的必需參數有 5 個:timeStamp,nonceStr,package,signType,paySign。其中 nonceStr、package、paySign 的值是需要通過算法或調用接口後才能獲取的。

nonceStr 值可通過隨機數生成算法生成;

package 值所包含的 prepay_id 參數值是調用統一下單接口後的返回值(調用微信支付前需要調用微信統一下單API);

paySign 的值需要通過一定的規則生成,點擊小程序支付接口文檔,我們可以看到 paySign 簽名所需字段列表,再根據簽名算法生成 paySign 值。

paySign 簽名必需字段也是 5 個:appId,timeStamp,nonceStr,package,signType。除了 appId 參數,其餘 4 個參數名都與微信支付 API 參數一樣。

但需要注意的是,這裏的簽名方式 signType 需要與統一下單的簽名類型一致,而不是與「微信支付 API」的簽名類型一致。詳細簽名算法請參考簽名算法 ?

知道每個參數值如何獲取之後,就可以調用微信支付 API 了。

// 示例代碼

wx.requestPayment({
‘timeStamp’: ”,
‘nonceStr’: ”,
‘package’: ”,
‘signType’: ‘MD5’,
‘paySign’: ”,
‘success’:function(res){
},
‘fail’:function(res){
}
})

當然,實現以上微信支付功能的前提是先在微信後臺開通微信支付功能,獲取商戶號等相關信息,具體開通流程請在微信商戶平臺查看接入指引。

可以加入知曉雲開發交流羣跟我交流溝通 ?

使用知曉雲快速接入微信支付

如果你覺得調用微信支付 APIwx.requestPayment(OBJECT) 有點複雜,接下來我會再介紹一種更簡單的方法:知曉云爲開發者提供的微信支付 API:wx.BaaS.pay(OBJECT)。

從知曉雲提供的微信支付開發文檔上看,調用微信支付 API 必需參數只有 2 個:totalCost,merchandiseDescription。

totalCost 值(支付總額)本身就是訂單的必需參數值,通過購買商品價格和數量等計算出來的;

merchandiseDescription 值則是我們自定義的字符串數據。

對比之下,免去了複雜的算法生成和接口回調,輕輕鬆鬆就可以使用微信支付了。而且知曉雲的開發文檔也介紹了使用場景、接口說明和示例代碼。

關注「知曉程序」微信公衆號,回覆「知曉雲」,獲取知曉雲開發文檔。

現在我們再結合「北江紡織牛仔新時尚」小程序來進一步瞭解知曉雲微信支付 API 的使用。

用戶在下單時會生成訂單 order,訂單內包含每項商品數量價格的訂單子單 orderItem ,訂單子單包含訂單子單標誌 id、商品記錄標識 productId、商品價格 price 和商品數量 quantity 等信息。

通過以上信息先可以計算出每項商品訂單子單的金額,累加後得到必需參數總金額 totalCost 。在結合知曉雲調用微信支付時,將支付總金額參數及其他非必需字段(選傳)傳進去就可以了。

// 支付示例代碼
// 假設 orderItems 爲訂單子單列表
let params = {}
params.totalCost = count(orderItems) // count 爲開發者自定義的計算總金額方法,
params.merchandiseDescription = ‘北江紡織牛仔褲’

wx.BaaS.pay(params).then((res) => {
// success. 支付請求成功響應。
/* 如果支付成功, 則可以在 res 中拿到 transaction_no 和支付結果信息
如果支付失敗, 則可以獲取失敗原因

注: 只要是服務器有返回的情況都會進入 success, 即便是 4xx,5xx 都會進入
所以非系統級別錯誤導致的支付失敗也會進入這裏, 例如用戶取消,參數錯誤等
這是微信的處理方式與 BaaS 服務(器)無關

*/
}, (err) => {
// 未完成用戶授權或發生網絡異常等
console.log(err)
});

不過在你享受知曉雲提供的微信支付便捷之前,請先在知曉雲開發者「控制檯-支付」爲你的小程序綁定微信支付。

在綁定完微信支付後,不僅可以輕鬆地在小程序中調用微信支付,還能很方便地管理小程序的支付記錄,可以看到支付記錄的狀態和詳情以及申請退款等。

到此,這個系列就結束了,回顧閱讀

上篇:適用場景廣,表單收集類小程序開發案例覆盤
中篇:類似淘寶的搜索及購物車功能,如何在小程序中實現?

通過這三篇文章,爲大家介紹了從商品展示到購物車、下單功能再到完成支付的整個電商流程。每個功能同時可以在不同的場景下獨立應用。

當然,這幾個都是應用最廣也最基礎的功能,我們後續還會進行更多營銷功能的開發覆盤。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章