微信支付中分帳功能 填坑指南V1

公司是作電商的,近期開發了一款小程序,準備線上線下同步銷售玩具。這裏就涉及到微信支付的功能,網上有不少教程,官方也有文檔和Demo,所以微信支付仍是比較容易實現的。php

image

因爲咱們公司是和其餘公司合做運營的,這就涉及到收入分配問題。比較傳統的分配模式是月結、周結、日結這種,這些都沒法實時到帳。後來發現微信支付平臺裏,有個分帳功能,正好解決這個問題。今天重點聊的這個功能,目前網絡上資源不多,就寫了一篇教程,但願可以幫助到其餘開發員。小程序

image

一、哪裏開通?api

這個功能在微信支付平臺-產品中心-支付擴展工具。可是當你打開找到這個頁面後,會發現你的支付平臺並無這個功能?!安全

是的,這是第一個坑。諮詢了騰訊客服,回覆說:這個功能目前是內測階段,並無所有開通,沒有請耐心等待。因此,這個功能不是全部人都有。據妹紙說:若是你的流水天天正常、穩定,就有機會開通這個功能。微信

image

二、仔細看開發文檔網絡

騰訊的開發文檔仍是比較全面和規範的,要認真看,可能其中某一句話就是鑰匙。好比這個文檔工具

https://pay.weixin.qq.com/wiki/doc/api/allocation.php?chapter=26_3測試

要在之前的支付接口額外增長一個參數才能夠,不看文檔,估計調一天都不知道哪裏有問題。微信支付

三、常見問題也很重要編碼

這點彷佛之前不怎麼重視,但分帳的常見問題,仍是總結得很全面的。特別是紅框裏的那個地址,都是開發員常常犯的錯誤,過一遍,有個印象。 image

下面開始代碼開發了,小板凳搬好。

請求單次分帳API

注意紅框裏的文字,須要證書。這是什麼東東?以前不多見到的。簡單說,這是一種安全機制。由於涉及到錢,因此安全係數都很高。

image

證書是要下載並安裝的,這個證書就是指下圖裏的這個證書。

image

須要下載證書製做工具,配合使用,才能下載證書。證書以文件形式下載,就是下面這幾個文件,Windows系統只用第1個文件便可,雙擊安裝。安裝過程當中,須要提供密碼,這個密碼就是你的商戶號。一路默認就能安裝成功。

image

證書安裝好,咱們在代碼中也要引用它。HttpPost的時候要把證書信息傳進去才能夠,否則一直報錯,並且你根本看不出是沒有證書的問題。按照下面的代碼調用便可

image

留意這個API的其中一個參數:SignType加密類型:HMAC-SHA256,但支付的API中一直都是MD5。當時沒留意,調用一直報SystemError錯誤。。。後來是在常見問題裏找到了靈感。換成這個加密就好了。 

並且,雖說是HMAC-SHA256加密,但每一個語言加密方式可能都不同。這裏能夠找微信支付的官方的SDK。在SDK中找到了這個加密的代碼,好了,合併進本身代碼後,發現仍是報一樣的錯誤。有沒有頭大?

image

這裏要吐槽下官方的這個SDK,不知是故意留個Bug,仍是沒注意。總之,它提供的代碼是有問題的,就是編碼類型,它用的是Default,只要改爲UTF-8就能夠了。這個應該是整個分帳功能最深的一個坑了。官文文檔都不能徹底相信。。。

差很少通過上面這些步驟,分帳功能就沒啥問題了。

可是,又有一個新的問題,就是小程序裏調用微信支付,已經內置wx.requestPayment方法,支付成功後只返回一個字符串,其餘啥都沒有。。。可分帳的API要求傳入微信訂單號和商戶分帳單號,這裏有幾個坑的

image.png

第1個:微信訂單號容易找到,就是微信支付成功後,支付平臺分配的一個訂單號。在交易查詢中能夠拿到。那另外一個商戶分帳單號是什麼東東?查了N多資料,也問過客服,最後給出答案:這個單號是能夠本身分配的。。。直接傳微信訂單號也能夠(測試經過)。有沒有欲哭無淚的感受?看文檔的描述,神乎其神的樣子。

image

第2個:這些參數在小程序裏是拿不到的,只能經過支付成功的回調地址才能讀取到,就是下面這個地址。要用起來。在這個頁面裏,實現分帳功能就好了

image

通過上面這些填坑,分帳功能基本沒啥問題了。若是再有問題,就仔細看開發文檔和常見問題,基本都能解決。

相關文章
相關標籤/搜索