1. 程式人生 > >一文帶你瞭解微信/支付寶支付的相關概念

一文帶你瞭解微信/支付寶支付的相關概念

今天寫了一篇非技術文,需求來源於老大的老大,老老大。 這偏文章用以說明微信/支付寶相關引數之間錯綜複雜的關係,所有資料來自微信/支付寶官網,以及相關銀聯給的微信/支付寶對接文件。 嘿嘿,如果同行的小夥伴,也有這個疑惑,希望本篇文章幫你解惑。 ## 微信 名詞解釋: - **appid**:公眾號、小程式、移動應用唯一標識 - **mchid**:商戶申請微信支付後,由微信支付分配的商戶收款賬號。 - **openid**,微信使用者在公眾號 **appid** 下的唯一使用者標識,可用於永久標記一個使用者 - **sub_appid**:子 **appid**,服務商模式/銀行服務商模式起作用 - **sub_mch_id**:子商戶號, 服務商模式/銀行服務商模式起作用 - **sub_openid**:子 **appid** 下的唯一標識 - **channel_id**:服務商模式下,微信支付分配給收單服務商的ID 微信支付接入可以分為 - 普通商戶 - 服務商模式 - 普通服務商 - 銀行類服務商 銀行類服務商與普通類服務商的最大區別在於,普通類服務商不能清算資金,微信將會直接把資金清算給商戶賬戶。 ![](https://img2020.cnblogs.com/other/1419561/202003/1419561-20200307182820919-1430456766.jpg) 而銀行類服務商是可以為下屬特約商戶清算資金的。 ![](https://img2020.cnblogs.com/other/1419561/202003/1419561-20200307182821261-1288199620.jpg) > 現有銀行類服務商實際上是通過銀聯/網聯轉接微信 銀行服務商省申請資質要求較高,一般只有銀行、支付機構可以申請成為銀行類服務商。兩者申請要求如下: ![](https://img2020.cnblogs.com/other/1419561/202003/1419561-20200307182821423-1778222315.jpg) > 官網地址:https://pay.weixin.qq.com/partner/public/home ### 普通商戶 普通商戶模式下,商戶需要向微信申請 **appid** 以及 **mchid**。接入微信普通商戶版本的支付介面。 文件地址:https://pay.weixin.qq.com/wiki/doc/api/index.html JSAPI 支付模式,需要提前登陸授權,需要獲取使用者的 **openid**。三者關係如下圖: ![](https://img2020.cnblogs.com/other/1419561/202003/1419561-20200307182821561-1776141502.jpg) 同一個 **mchid** 可以繫結多個 **appid**,兩者可以是同一個公司主體,也可以不同公司主體(**限定資格開放**)。**mchid** 最多可以繫結 50 個 **appid**; 同一個 **appid** 又可以被多個 **mch** id 繫結,不過需要注意的是,**mchid** 費率必須不相同。 所以 **appid** 與 **mchid** 原則上是多對多的關係。 ![](https://img2020.cnblogs.com/other/1419561/202003/1419561-20200307182821742-1850849746.jpg) 這裡需要注意,微信清算資金實際上是基於 **mchid**。即同一個 mchid,使用多個 **appid** 做交易,第二天資金是清算到 **mchid** 繫結的商戶的賬戶。 ### 服務商模式 第三方服務商向微信申請自己的 **appid**,並通過 **appid** 申請服務商**mch_id**,以此獲得微信支付服務商能力。再通過服務商 **mch_id** 為所服務的特約商戶申請建立微信支付 **sub_mch_id**,建立好的 **sub_mch_id** 預設和服務商的**mch_id** 建立父子授權關係。銀行服務商模式可以通過接入入駐特約商戶,而普通服務商只能通過頁面入駐。 服務商模式下,可以配置特約商戶使用自己申請 **appid**,傳入 **sub_appid** 欄位。 ![](https://img2020.cnblogs.com/other/1419561/202003/1419561-20200307182821945-514823327.jpg) > 官方解釋: > > **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:獨立軟體開發商 - 銀行類服務商 支付寶銀行類服務商與微信類似,服務商可以自己清算資金。 ![](https://img2020.cnblogs.com/other/1419561/202003/1419561-20200307182822080-1840781475.jpg) 不過支付寶的這個模式比較簡單,服務商只需要通過後臺介面入駐特約商戶成功,得到支付寶分配的商戶編號。交易時上送商戶編號與機構編碼即成功。 ### 普通商戶 普通商戶需要向支付寶申請入駐,將會得到商務號。接著需要建立應用得到 **appid**,上架成功後,需要進行簽約。簽約成功之後,這個 **appid** 與商戶號建立唯一的繫結的關係。 同一個商戶號可以繫結多個 **appid**,但是同一個 **appid** 只能繫結唯一個商戶號。 > 其實從支付寶的介面也可以看出,支付寶只要求傳入 **appid**,後臺肯定是跟庫 **appid** 查詢對應的商戶號。 > > 這點雖然沒有微信靈活,但是支付寶理解起來簡單。微信 **appid** 與 **mchid** 多對多的關係,有點複雜。 ![](https://img2020.cnblogs.com/other/1419561/202003/1419561-20200307182822284-1436718277.jpg) ### 銀行類服務商 這裡服務商直接觸過銀行類服務商,其他型別服務商不太清楚。 銀行類服務商交易介面與普通商戶模式相比,僅僅多出了 **merchant_id **與 **org_pid**,其他資訊與普通商戶的介面一致。 ### 總結 同微信。 > ps:雖然支付寶官網上文件倒是挺多的,但是就是沒有找到說的很明白的文件。。。這一點微信還是挺舒服的,示例圖畫的很清晰,贊一個 ღ( ´・ᴗ・` )比心。 ### 幫助資料 https://docs.open.alipay.com/200/105314/ https://opendocs.alipay.com/isv/10272/ru478a > 歡迎關注我的公眾號:程式通事,獲得日常乾貨推送。如果您對我的專題內容感興趣,也可以關注我的部落格:[studyidea.cn](https://studyi