一文帶你了解微信/支付寶支付的相關概念
- 2020 年 3 月 7 日
- 筆記
今天寫了一篇非技術文,需求來源於老大的老大,老老大。
這偏文章用以說明微信/支付寶相關參數之間錯綜複雜的關係,所有資料來自微信/支付寶官網,以及相關銀聯給的微信/支付寶對接文檔。
嘿嘿,如果同行的小夥伴,也有這個疑惑,希望本篇文章幫你解惑。
微信
名詞解釋:
- appid:公眾號、小程式、移動應用唯一標識
- mchid:商戶申請微信支付後,由微信支付分配的商戶收款帳號。
- openid,微信用戶在公眾號 appid 下的唯一用戶標識,可用於永久標記一個用戶
- sub_appid:子 appid,服務商模式/銀行服務商模式起作用
- sub_mch_id:子商戶號, 服務商模式/銀行服務商模式起作用
- sub_openid:子 appid 下的唯一標識
- channel_id:服務商模式下,微信支付分配給收單服務商的ID
微信支付接入可以分為
- 普通商戶
- 服務商模式
- 普通服務商
- 銀行類服務商
銀行類服務商與普通類服務商的最大區別在於,普通類服務商不能清算資金,微信將會直接把資金清算給商戶賬戶。
而銀行類服務商是可以為下屬特約商戶清算資金的。
現有銀行類服務商實際上是通過銀聯/網聯轉接微信
銀行服務商省申請資質要求較高,一般只有銀行、支付機構可以申請成為銀行類服務商。兩者申請要求如下:
普通商戶
普通商戶模式下,商戶需要向微信申請 appid 以及 mchid。接入微信普通商戶版本的支付介面。
文檔地址:https://pay.weixin.qq.com/wiki/doc/api/index.html
JSAPI 支付模式,需要提前登陸授權,需要獲取用戶的 openid。三者關係如下圖:
同一個 mchid 可以綁定多個 appid,兩者可以是同一個公司主體,也可以不同公司主體(限定資格開放)。mchid 最多可以綁定 50 個 appid;
同一個 appid 又可以被多個 mch id 綁定,不過需要注意的是,mchid 費率必須不相同。
所以 appid 與 mchid 原則上是多對多的關係。
這裡需要注意,微信清算資金實際上是基於 mchid。即同一個 mchid,使用多個 appid 做交易,第二天資金是清算到 mchid 綁定的商戶的賬戶。
服務商模式
第三方服務商向微信申請自己的 appid,並通過 appid 申請服務商mch_id,以此獲得微信支付服務商能力。再通過服務商 mch_id 為所服務的特約商戶申請創建微信支付 sub_mch_id,創建好的 sub_mch_id 默認和服務商的mch_id 建立父子授權關係。銀行服務商模式可以通過接入入駐特約商戶,而普通服務商只能通過頁面入駐。
服務商模式下,可以配置特約商戶使用自己申請 appid,傳入 sub_appid 欄位。
官方解釋:
sub_appid 可為公眾號,APP 或小程式的 appid,服務商在服務商商戶平台可手動為每個特約商戶綁定與渠道商主體或特約商戶主體一致的公眾號,APP或小程式的appid;針對小程式,還支援綁定服務商主體的小程式 appid。目前最多配置5個. 手工配置路徑:」服務商商戶平台-服務商功能-子商戶管理-開發配置-特約商戶appid 配置
服務商模式下使用 JSAPI,若特約商戶想基於自己 appid 做交易,可以基於特約商戶 appid 登陸授權獲取 openid,然後傳入 sub_appid 與 sub_openid 。
若沒傳入,只能使用服務商 appid 登陸授權,獲取 openid。
總結
普通商戶模式,需要商戶自己開發團隊對接微信。而服務商模式,一般有服務商開發自己的收款功能,特約商戶入駐即可使用,無需二次開發,適合個人/小微企業。另外服務商也可以提供包裝之後的介面,有開發的能力也可以接入。
微信幫助文檔
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_10&index=1#
https://pay.weixin.qq.com/static/pay_setting/appid_protocol.shtml
支付寶
名詞解釋:
- app_id:支付寶分配給開發者的應用 ID
- 商戶 uid/pid:支付寶商戶號
- buyer_id:買家的支付寶唯一用戶號(2088開頭的16位純數字)
- org_pid:銀行服務商模式下,收單機構(例如銀行)的標識,填寫該機構在支付寶的 pid
- merchant_id,銀行服務商模式下,特約商戶入駐成功之後,分配商戶號
支付寶接入分為:
- 普通商戶
- 服務商
- ISV:獨立軟體開發商
- 銀行類服務商
支付寶銀行類服務商與微信類似,服務商可以自己清算資金。
不過支付寶的這個模式比較簡單,服務商只需要通過後台介面入駐特約商戶成功,得到支付寶分配的商戶編號。交易時上送商戶編號與機構編碼即成功。
普通商戶
普通商戶需要向支付寶申請入駐,將會得到商務號。接著需要創建應用得到 appid,上架成功後,需要進行簽約。簽約成功之後,這個 appid 與商戶號建立唯一的綁定的關係。
同一個商戶號可以綁定多個 appid,但是同一個 appid 只能綁定唯一個商戶號。
其實從支付寶的介面也可以看出,支付寶只要求傳入 appid,後台肯定是跟庫 appid 查找對應的商戶號。
這點雖然沒有微信靈活,但是支付寶理解起來簡單。微信 appid 與 mchid 多對多的關係,有點複雜。
銀行類服務商
這裡服務商直接觸過銀行類服務商,其他類型服務商不太清楚。
銀行類服務商交易介面與普通商戶模式相比,僅僅多出了 merchant_id 與 org_pid,其他資訊與普通商戶的介面一致。
總結
同微信。
ps:雖然支付寶官網上文檔倒是挺多的,但是就是沒有找到說的很明白的文檔。。。這一點微信還是挺舒服的,示例圖畫的很清晰,贊一個 ღ( ´・ᴗ・` )比心。
幫助資料
https://docs.open.alipay.com/200/105314/
https://opendocs.alipay.com/isv/10272/ru478a
歡迎關注我的公眾號:程式通事,獲得日常乾貨推送。如果您對我的專題內容感興趣,也可以關注我的部落格:studyidea.cn