微信支付中分账功能 填坑指南V1
微信支付如何做分賬?
01什么是微信分賬?
微信分賬的推出主要有三個方面的原因:
①市場方面:
在現(xiàn)有環(huán)境下,電商平臺或者多級分銷、加盟代理模式,訂單參與方較多,需要用戶統(tǒng)一付款后由平臺方統(tǒng)一收款,再根據(jù)訂單參與方統(tǒng)一分賬。
②政策方面:
市場需求與政策規(guī)范有所沖突,監(jiān)管機(jī)構(gòu)加大了對大商戶+二清模式的打擊力度。
③微信支付方面:
在上述兩個情況下,微信支付將自身的清結(jié)算能力賦能給平臺商戶。
微信分賬即微信推出的交易資金再分配產(chǎn)品,收款后按照平臺的業(yè)務(wù)規(guī)則,無需中轉(zhuǎn)直接進(jìn)行資金分配;主要用于服務(wù)商幫助特約商戶完成訂單收單后的資金分配。
前提概念
分賬方:即分賬發(fā)起方,是商品或服務(wù)的提供方,這里指特約商戶。
分賬接收方:接收分賬資金的商戶或個人,如:特約商戶上游的供應(yīng)方、合作的商戶、商戶的員工、商戶的用戶等。
微信分賬的步驟
①分賬方通過微信收款的訂單,由微信扣除手續(xù)費后,凍結(jié)在分賬方的賬戶(分賬方不可見)。
②分賬方根據(jù)具體的業(yè)務(wù)情況和場景,通過微信分賬接口,將訂單的信息上傳微信(分賬接收方、分賬金額等)。
③微信將相應(yīng)資金,分配到各接收方賬戶中(微信商戶賬戶或微信零錢)。
資金流向說明:
假設(shè)用戶支付 1000 元:
①微信扣除 6 元手續(xù)費;
②微信將 994 元凍結(jié)至特約商戶賬戶中(此時金額不可見);
③商戶上傳分賬信息,為兩個分賬商戶分別分賬 50 元與 40 元;
④微信分別為兩個分賬接受方分賬 50 元與 40 元;
⑤微信將剩余的 904 元結(jié)算至特約商戶的賬戶中。
微信分賬的優(yōu)點
合規(guī):在微信體系內(nèi),由微信負(fù)責(zé)將交易資金分別結(jié)算給收款方,平臺避免了違規(guī)的風(fēng)險;
合理納稅:各收款方根據(jù)真實收入合理納稅;
開通周期短:與微信企業(yè)付款不同的是,企業(yè)無需三個月的等待期,可以通過微信服務(wù)商(例如 Ping++)開通,快速上線。
02微信分賬適用場景
酒店預(yù)訂:
用戶繳納訂房費用后,資金可先凍結(jié)在酒店的商戶號中,待用戶確認(rèn)到店消費后,服務(wù)商可根據(jù)情況,將資金分賬給 OTA 平臺、服務(wù)商或房東。
訂餐外賣:
用戶在訂餐平臺的某個餐飲商戶下單完成支付后,用戶支付的訂餐資金先凍結(jié)在該餐飲商戶的商戶號中;待用戶確認(rèn)收貨后,服務(wù)商掉按指令分賬的接口,將訂餐資金進(jìn)行分配,例如分賬給外賣員、訂餐平臺抽傭,剩余資金解凍給餐飲商戶。
停車場:
用戶在停車場繳納停車費用后,資金先凍結(jié)在停車場的商戶號中,服務(wù)商根據(jù)與停車證之間的協(xié)議,將停車費分配給其他微信支付商戶,例如智能停車系統(tǒng)服務(wù)商。
03微信分賬的特點
分賬接收方
支持 4 種方式創(chuàng)建接收方
公司:微信商戶號(不限定是同義個服務(wù)商下的特約商戶)
個人:微信號、分賬方公眾號 OpenID、服務(wù)商公眾號 OpenID
支付方式
僅限于標(biāo)記了的訂單參與分賬
支持微信所有支付方式
分賬方式
基于訂單進(jìn)行分賬
先凍結(jié)、再分賬
最長凍結(jié)期限為 30 天
單筆訂單分賬方最多支持 50 個
可分賬金額為扣除手續(xù)費后的金額
為了保證特約商戶的資金安全,特約商戶可以設(shè)定允許服務(wù)商分配資金的最大比例
報表
按照分賬方、分賬接收方可提供獨立報表
支付報表:
分賬方作為特約商戶,按照支付、退款交易提供支付報表;
信息:訂單號、支付金額、手續(xù)費、付款用戶、購買商品等。
分賬報表:
分賬方、分賬接收方,按照每筆支付訂單的分賬金額,提供分賬報表;
信息:支付訂單號、分賬方、分賬接收方、分賬金額、分賬時間等。
微信分賬與微信企業(yè)付款的區(qū)別
由于我們公司是和其他公司合作運營的,這就涉及到收入分配問題。比較傳統(tǒng)的分配模式是月結(jié)、周結(jié)、日結(jié)這種,這些都無法實時到賬。后來發(fā)現(xiàn)微信支付平臺里,有個分賬功能,正好解決這個問題。今天重點聊的這個功能,目前網(wǎng)絡(luò)上資源很少,就寫了一篇教程,希望能夠幫助到其他開發(fā)員。
1、哪里開通?
這個功能在微信支付平臺-產(chǎn)品中心-支付擴(kuò)展工具。但是當(dāng)你打開找到這個頁面后,會發(fā)現(xiàn)你的支付平臺并沒有這個功能?!
是的,這是第一個坑。咨詢了騰訊客服,回復(fù)說:這個功能目前是內(nèi)測階段,并沒有全部開通,沒有請耐心等待。所以,這個功能不是所有人都有。據(jù)妹紙說:如果你的流水每天正常、穩(wěn)定,就有機(jī)會開通這個功能。
2、仔細(xì)看開發(fā)文檔
騰訊的開發(fā)文檔還是比較全面和規(guī)范的,要認(rèn)真看,可能其中某一句話就是鑰匙。比如這個文檔
https://pay.weixin.qq.com/wiki/doc/api/allocation.php?chapter=26_3
要在以前的支付接口額外增加一個參數(shù)才可以,不看文檔,估計調(diào)一天都不知道哪里有問題。
3、常見問題也很重要
這點似乎以前不怎么重視,但分賬的常見問題,還是總結(jié)得很全面的。特別是紅框里的那個地址,都是開發(fā)員經(jīng)常犯的錯誤,過一遍,有個印象。
下面開始代碼開發(fā)了,小板凳搬好。
請求單次分賬API
注意紅框里的文字,需要證書。這是什么東東?之前很少見到的。簡單說,這是一種安全機(jī)制。因為涉及到錢,所以安全系數(shù)都很高。
證書是要下載并安裝的,這個證書就是指下圖里的這個證書。
需要下載證書制作工具,配合使用,才能下載證書。證書以文件形式下載,就是下面這幾個文件,Windows系統(tǒng)只用第1個文件即可,雙擊安裝。安裝過程中,需要提供密碼,這個密碼就是你的商戶號。一路默認(rèn)就能安裝成功。
證書安裝好,我們在代碼中也要引用它。HttpPost的時候要把證書信息傳進(jìn)去才可以,不然一直報錯,而且你根本看不出是沒有證書的問題。按照下面的代碼調(diào)用即可
留意這個API的其中一個參數(shù):SignType加密類型:HMAC-SHA256,但支付的API中一直都是MD5。當(dāng)時沒留意,調(diào)用一直報SystemError錯誤。。。后來是在常見問題里找到了靈感。換成這個加密就行了。
而且,雖然說是HMAC-SHA256加密,但每個語言加密方式可能都不一樣。這里可以找微信支付的官方的SDK。在SDK中找到了這個加密的代碼,好了,合并進(jìn)自己代碼后,發(fā)現(xiàn)還是報同樣的錯誤。有沒有頭大?
這里要吐槽下官方的這個SDK,不知是故意留個Bug,還是沒注意。總之,它提供的代碼是有問題的,就是編碼類型,它用的是Default,只要改成UTF-8就可以了。這個應(yīng)該是整個分賬功能最深的一個坑了。官文文檔都不能完全相信。。。
差不多經(jīng)過上面這些步驟,分賬功能就沒啥問題了。
但是,又有一個新的問題,就是小程序里調(diào)用微信支付,已經(jīng)內(nèi)置wx.requestPayment方法,支付成功后只返回一個字符串,其他啥都沒有。。。可分賬的API要求傳入微信訂單號和商戶分賬單號,這里有幾個坑的
第1個:微信訂單號容易找到,就是微信支付成功后,支付平臺分配的一個訂單號。在交易查詢中可以拿到。那另一個商戶分賬單號是什么東東?查了N多資料,也問過客服,最后給出答案:這個單號是可以自己分配的。。。直接傳微信訂單號也可以(測試通過)。有沒有欲哭無淚的感覺?看文檔的描述,神乎其神的樣子。
第2個:這些參數(shù)在小程序里是拿不到的,只能通過支付成功的回調(diào)地址才能讀取到,就是下面這個地址。要用起來。在這個頁面里,實現(xiàn)分賬功能就行了
經(jīng)過上面這些填坑,分賬功能基本沒啥問題了。如果再有問題,就仔細(xì)看開發(fā)文檔和常見問題,基本都能解決。
微信分賬功能討論
近日一位朋友咨詢我關(guān)于微信如何實現(xiàn)“商家對客戶”派發(fā)紅包和現(xiàn)金的功能(分賬),于是做了初步的調(diào)研:
首先想到如果微信平臺能提供給客戶返現(xiàn)的接口就好了
微信工作平臺支付接口出去二維碼支付包括兩種方式:
http://wenku.baidu.com/link?url=RAZwsUI6GREC1LsYf- bpx35PUe7FYdlX8f6wMUVAj4isJ4fKr9KDYZhjLJTs1kv5jEMw1C7mO06UiDX77OL8zRrb5wBuPpxYYlJXU2f9yee
JS模式、原聲模式兩種模式都是實現(xiàn)“客戶對商家”支付功能,在使用支付功能之前,微信給商家創(chuàng)建了財富通賬號,在客戶付款成功后,錢是直接打入商家的財付 通賬戶客戶在微信方進(jìn)行支付后通知商家,支付權(quán)是在微信方,顯然通過微信公布出來的支付接口是不能實現(xiàn)分賬的功能
然后是否可能通過獲取客戶的賬戶信息包括財付通號,支付寶號,銀行賬號等實現(xiàn)
微信提供了獲取用戶信息的接口:
http://mp.weixin.qq.com/wiki/index.php?title=%E8%8E%B7%E5%8F%96%E7%94%A8%E6%88%B7%E5%9F%BA%E6%9C%AC%E4%BF%A1%E6%81%AF
通過接口,我們僅能得到用戶的昵稱,性能,所在地,沒有賬號的信息,我們也就不能反向的給用戶分賬,顯然也不能實現(xiàn)分賬的功能
最后是否讓客戶自己填寫信息實現(xiàn)分賬功能
財付通分賬功能實現(xiàn),參見文檔中分賬功能
http://www.doc88.com/p-518675887466.html
結(jié)論
通過初步調(diào)研發(fā)現(xiàn)在沒有微信端提供反向支付功能之前,我們只能間接地方式實現(xiàn)微信方的分賬功能。
總結(jié)
以上是生活随笔為你收集整理的微信支付中分账功能 填坑指南V1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 详解linux下的串口通讯开发
- 下一篇: MAX函数和GROUP BY 语句一起使