天天看點

快速入門微信支付

1、概述

微信支付,大家都聽說過,使用友善,對接也很友善。

項目中如果存在支付需求,通常都會想到微信支付和支付寶支付。

今天就簡單講講微信支付的對接流程與實作。

2、微信支付的方式

微信支付主要包含以下支付方式:

1)JSAPI支付:在微信内部打開前端頁面,支付時使用 JSAPI 接口調起微信支付子產品完成收款。

2)APP支付:在 IOS 或 安卓 開發的 APP 中,調起微信支付子產品完成收款。

3)H5支付:在手機的 某浏覽器APP 中打開前端頁面,支付時通過url跳轉到微信的支付中間頁,調起微信支付子產品完成收款。

4)Native支付:通常是在PC的浏覽器打開前端頁面,支付時生成收款二維碼,使用手機微信掃描收款二維碼完成收款。

5)小程式支付:在小程式中調起微信支付子產品完成收款。

6)付款碼支付:使用者出示微信錢包中的條碼、二維碼,商家通過專用的硬體裝置掃描使用者條碼完成收款。

7)刷臉支付:使用者在內建微信刷臉支付SDK的線下硬體機具上"刷臉"完成支付。

這裡我們主要介紹一下前5種支付方式。

3、支付流程概述

雖然支付方式不同,但支付流程都是大同小異,下面我們就來簡單介紹一下:

步驟一:生成訂單

步驟二:調用微信的下單接口

步驟三:調起微信支付

步驟四:接收微信支付結果通知

4、訂單狀态

根據支付流程,訂單的狀态可以大緻分為:待支付、支付中、支付成功、支付失敗。

5、步驟一:生成訂單

該步驟不需要與微信的接口互動,完全是業務系統自己的邏輯,主要是記錄訂單中商品的明細、數量、金額等資訊。

生成訂單後,訂單的初始狀态為 待支付。

6、步驟二:調用微信的下單接口

訂單生成後,去調用微信的下單接口,在微信支付服務背景生成預支付交易單。

注:微信下單接口會用到appid(應用ID)和mchid(直連商戶号),可以提前在 微信公衆平台、微信開放平台 和 微信支付平台 申請好相應的資訊。

不同支付方式調用的接口不同,接口的傳回值也不相同:

1)JSAPI支付、小程式支付

這兩種支付方式調用的是 JSAPI下單接口 https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi 

傳回值是 prepay_id(預支付交易會話辨別)

2)APP支付

調用 APP下單接口 https://api.mch.weixin.qq.com/v3/pay/transactions/app

3)H5支付

調用 H5下單接口 https://api.mch.weixin.qq.com/v3/pay/transactions/h5

傳回值是 h5_url(支付跳轉連結)

4)Native支付

調用Native下單接口 https://api.mch.weixin.qq.com/v3/pay/transactions/native

傳回值是 code_url(二維碼連結)

在調用微信下單接口時,有一個必填字段 notify_url(通知位址),指定了本次支付的回調位址。

微信下單接口調用成功後,訂單的狀态可更改為 支付中,如果調用不成功則訂單狀态改為 支付失敗。

7、步驟三:調起微信支付

微信下單接口調用成功後,可根據不同的支付方式調起微信支付。

1)JSAPI支付

前端頁面使用微信支付提供的前端JS方法調起微信支付,此處會用到微信下單接口傳回的 prepay_id(預支付交易會話辨別)。

APP端使用微信支付提供的SDK調起微信支付,此處會用到微信下單接口傳回的 prepay_id(預支付交易會話辨別)。

前端頁面直接重定向到微信下單接口傳回的 h5_url(支付跳轉連結) 位址調起微信支付中間頁,完成支付。

前端将微信下單接口傳回的 code_url(二維碼連結)轉換成二維碼圖檔,使用者通過手機微信掃碼進行支付。

5)小程式支付

小程式端使用 wx.requestPayment 方法調起微信支付,此處會用到微信下單接口傳回的 prepay_id(預支付交易會話辨別)。

如果調起失敗,将訂單狀态改為 支付失敗。

8、步驟四:接收微信支付結果通知

當微信端有了支付結果後,會回調通知業務系統支付的結果,回調參數中包含業務訂單号(調用微信下單接口時指定的),根據業務訂單号,更新訂單的狀态。

在接收到微信支付結果通知之前,可為使用者展示一個 支付中 的等待頁面,定時向背景請求訂單狀态,當訂單狀态由支付中變為其他狀态,則支付完畢,将最終狀态展現給使用者。

9、綜述

好了,講到這裡,大家對微信支付應該有個初步的認識, 歡迎多多交流。