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