對于許多小程序開發者而言,“小程序支付接入”是實現商業閉環的關鍵一步。無論是電商、知識付費還是服務預約,流暢的支付體驗都能極大提升用戶滿意度。本文將為您提供一份清晰、全面的“小程序接入教程”,一步步引導您完成微信和支付寶支付的配置與開發。
第一部分:準備工作(兩者通用)
在開始編碼之前,充分的準備是成功的一半。以下是兩個平臺都需要的步驟:
1. 完成企業資質認證:個人開發者無法申請支付接口。您必須擁有已認證的企業主體小程序。
2. 開通支付功能:
微信:登錄微信公眾平臺,在“功能”->“支付功能”中申請開通微信支付商戶號。
支付寶:登錄支付寶開放平臺,在“產品中心”申請開通“App支付”或“小程序支付”。
3. 獲取關鍵配置參數:
微信:獲取商戶號(MchID)、API密鑰(API Key)。
支付寶:獲取應用ID(APPID)、支付寶公鑰(AlipayPublicKey)、應用私鑰(AppPrivateKey)。
4. 配置密鑰和域名:在各自的管理后臺,設置API密鑰(微信)或RSA2密鑰(支付寶),并將您的服務器IP地址添加到白名單中。同時,配置請求授權的服務器域名。
第二部分:微信小程序支付接入教程
微信支付的流程可以簡化為:小程序端發起請求 -> 商戶服務器統一下單 -> 返回支付參數 -> 小程序端調起支付。
核心步驟:
1. 后端統一下單(API):
小程序前端將商品信息、訂單號等發送至您的服務器。您的服務器調用微信支付提供的`統一下單API`,使用準備好的`MchID`和`API Key`進行簽名,請求生成預支付交易會話。
// 偽代碼示例(Node.js)
const unifiedOrder = async (orderParams) => {
// 構造參數、生成簽名
const response = await request('https://api.mch.weixin.qq.com/pay/unifiedorder', orderParams);
return response; // 包含 prepay_id 等關鍵參數
}
2. 前端調起支付:
后端將獲取到的`prepay_id`及其他參數(如`nonceStr`, `timeStamp`, `paySign`)返回給小程序前端。前端調用`wx.requestPayment()`即可調起支付界面。
// 小程序端代碼
wx.requestPayment({
timeStamp: '', // 時間戳
nonceStr: '', // 隨機字符串
package: `prepay_id=wx201410272009395522657a690389285100`, // 預支付交易會話標識
signType: 'RSA', // 簽名算法,現一般為RSA
paySign: '', // 簽名
success (res) { /* 支付成功 */ },
fail (err) { /* 支付失敗 */ }
})
3. 處理支付結果通知:
支付完成后,微信服務器會向您預先在后臺配置的“通知地址”發送異步通知(Notify),您需要在后端驗證通知的有效性,并更新訂單狀態。
第三部分:支付寶小程序支付接入教程
支付寶的流程與微信類似,但在API調用和簽名方式上有所不同。
核心步驟:
1. 后端生成訂單信息(alipay.trade.create):
小程序前端請求您的服務器創建訂單。您的服務器調用支付寶開放平臺的接口(如`alipay.trade.create`),使用應用私鑰簽名,請求生成支付訂單字符串。
// 偽代碼示例(使用Alipay SDK)
const AlipaySdk = require('alipay-sdk').default;
const alipaySdk = new AlipaySdk({ appId, privateKey, alipayPublicKey });
const result = await alipaySdk.exec('alipay.trade.create', {
subject: '商品標題',
out_trade_no: '商戶訂單號',
total_amount: '0.01',
});
2. 前端調起支付:
后端將支付寶返回的復雜響應(通常包含一個`tradeNo`或訂單字符串)處理后返回給前端。前端調用`my.tradePay()`方法調起支付。
// 支付寶小程序端代碼
my.tradePay({
orderStr: '后端返回的訂單信息字符串', // 方式一:使用orderStr
// tradeNo: '后端返回的交易號', // 方式二:使用tradeNo
success (res) {
if (res.resultCode === '9000') {
// 支付成功
}
}
});
3. 處理異步通知:
同樣,您需要在后端處理支付寶服務器發送的異步通知(Notify),驗證簽名并更新訂單狀態,確保數據一致性。
第四部分:常見問題與注意事項
加密與安全:API密鑰和私鑰是最高機密,絕不能存放在前端。所有簽名操作都必須在您的服務器端完成。
雙重驗證:支付結果應以服務器異步通知(Notify)為準,前端返回的成功狀態僅作界面展示參考。
對賬:定期通過平臺提供的對賬單API進行對賬,確保每一筆交易賬目清晰。
審核:確保您的經營類目符合平臺規定,否則支付接口申請可能無法通過。
總結
完成“小程序支付接入”是一個需要細心和耐心的過程,涉及前端、后端與平臺后臺的三方協作。本“小程序接入教程”為您梳理了微信和支付寶支付的核心流程與關鍵代碼。希望這篇指南能幫助您高效地打通小程序的支付環節,為您的用戶帶來安全、便捷的支付體驗。