使用微信小程序進(jìn)行微信支付流程說明

微信支付的入口是在微信商戶平臺(tái)中,從微信商戶平臺(tái)的開發(fā)文檔可以查看相關(guān)微信支付的文檔,但是官方文檔首頁居然木有小程序版本入口,所以單獨(dú)給一下小程序的文檔. 微信支付的開發(fā)分為刷卡支付、公眾號(hào)支付、掃碼支付、APP支付以及小程序支付。

小程序支付流程

小程序支付流程

1. 小程序端向服務(wù)端請(qǐng)求生成訂單

小程序端向服務(wù)端請(qǐng)求下單,服務(wù)端需要先針對(duì)小程序進(jìn)行用戶認(rèn)證,并生成內(nèi)部訂單。

2. 小程序端向服務(wù)端請(qǐng)求訂單支付

小程序端向服務(wù)端請(qǐng)求支付,服務(wù)端調(diào)用統(tǒng)一下單API,獲取prepay_id。

3. 服務(wù)端請(qǐng)求統(tǒng)一下單API

接口地址https://api.mch.weixin.qq.com/pay/unifiedorder
請(qǐng)求方式POST
是否需要證書: 否
請(qǐng)求參數(shù)(必填)

  • 小程序ID(appid):可在公眾號(hào)配置頁面獲取
  • 商戶號(hào)(mch_id):可以在微信商戶配置頁面獲取
  • 隨機(jī)字符串(nonce_str):隨機(jī)字符串,32位
  • 簽名(sign):可查看簽名生成算法
  • 商品描述(body): 參考微信參數(shù)規(guī)定
  • 商戶訂單號(hào)(out_trade_no): 服務(wù)端內(nèi)部生成的訂單號(hào)
  • 總金額(total_fee):訂單實(shí)際總金額,切記單位是分
  • 終端IP(spbill_create_ip): APP和網(wǎng)頁支付提交用戶端ip,Native支付填調(diào)用微信支付API的機(jī)器IP。
  • 通知地址(notify_url):微信支付的通知結(jié)果是異步的,支付成功后,微信會(huì)回調(diào)此地址,不能攜帶參數(shù)
  • 交易類型(trade_type):小程序取值:JSAPI

返回結(jié)果

  • return_code: 此字段表示通信是否成功,非交易是否成功, 取值:SUCCESS、FAIL
  • return_msg: 返回的信息
  • result_code: 此字段表示交易是否成功!取值:SUCCESS、FAIL
  • err_code: 請(qǐng)求錯(cuò)誤代碼,詳見微信文檔。
  • err_code_des: 錯(cuò)誤返回的信息描述
  • trade_type: 交易類型,當(dāng)return_code和result_code都為SUCCESS時(shí)才返回
  • prepay_id:預(yù)支付ID,下一步要用到的,有效期2小時(shí)。如果用戶在生成此id后取消支付,但是在2個(gè)小時(shí)內(nèi)重新支付時(shí)可以復(fù)用該id。 當(dāng)return_code和result_code都為SUCCESS時(shí)才返回。

4. 服務(wù)端再次生成簽名

當(dāng)拿到prepay_id后,服務(wù)端應(yīng)該馬上存儲(chǔ)起來,以便在2個(gè)小時(shí)內(nèi)都可以復(fù)用。然后接下來就是要再次簽名(安全!安全!安全!)。服務(wù)端將最終需要請(qǐng)求微信支付的參數(shù)返回給小程序。

返回參數(shù)

  • appid:可在公眾號(hào)配置頁面獲取
  • timeStamp: 時(shí)間戳,到秒為止,如果用java的朋友記得不要用毫秒,要截?cái)嘧詈笕?/li>
  • nonceStr: 32位隨機(jī)數(shù)
  • package: prepay_id=xxxxx(上一步拿到的prepay_id)
  • signType:MD5
  • paySign: 重新生成的簽名

5. 小程序端向微信服務(wù)器發(fā)起支付

小程序在拿到服務(wù)端的參數(shù)后,調(diào)用wx.requestPayment(OBJECT)發(fā)起支付。

6. 服務(wù)端接收支付回調(diào)接口

在小程序端支付成功后,微信會(huì)立即請(qǐng)求之前設(shè)置的回調(diào)地址,并且服務(wù)端返回應(yīng)答,流程才算結(jié)束, 詳見官方文檔.一般我們需要針對(duì)返回的金額和內(nèi)部訂單號(hào)進(jìn)行校驗(yàn),并且存儲(chǔ)微信支付訂單號(hào)等信息。

參考資料

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容