awesome-payment
awesome payment
常識
支付方式
掃碼支付或主掃:即C端用戶主动
掃商家收款碼,這個收款碼是收款機構預生成訂單,由商家輸入收款金額,請求至收款機構,然後返回一條鏈接(此鏈接能在支付APP中調起付款)給商戶測,商家在行動POS機或別的螢幕裝置上展示次連結產生的二維碼,使用者掃描,輸入付款密碼即可完成付款。
付款碼支付、二維碼支付或條碼支付或被掃:即C端用戶出示自己的付款二維碼,被动
的由商戶經過掃碼槍等設備獲取條碼編號,商家將條碼編號和扣款金額設置請求至收款機構,然後由收款機構扣款,發起向C端用戶的支付確認窗(小額可能免密),完成付款。
JSAPI支付:JSAPI付款是用戶在支付APP中(微信、支付寶、雲端閃付)開啟商家定義的H5頁面,請求後端介面依據商家資訊、付款金額等,將付款要求至收款機構,收款機構傳回相關PayInfo字串參數(裡麵包含訂單號碼、商家在微信/支付寶/雲端閃付等平台的商家資訊、校驗簽章等等),H5頁面已提前引入微信/支付包/雲端閃付的JS SDK,根據PayInfo中的參數調起支付,輸入密碼,即可完成付款。市面上常見的小微型商家的多碼合一的台卡
就是利用這個介面來做到聚合支付的。
APP支付:APP付款又稱為行動裝置支付,是商家透過在行動裝置應用APP中整合開放SDK調起微信支付模組完成付款的模式。
角色
- 個人用戶:付款方,消費者
- 商家:終端商戶,最終收款人
- 服務商:第三方,具有支付牌照的能夠進行收款業務的聚合支付服務商
- 收款機構
- 清算中心
- 網聯:非銀行支付機構網路支付清算平台,簡稱網聯,網聯取代先前第三方支付公司與銀行直接對接的模式。網聯作為清算平台,一端連接第三方支付公司,另一端對接銀行系統。
- 銀聯
實際上也有可能出現第四方、第五方、第六方,因為在法律允許下,技術上是可以做中轉或支援多個支付管道的聚合支付技術公司。只要不參與違規清算,這也是市面上很多的聚合支付生存之道。
行為
- 清算:清分+結算
- 清分:記帳+發送指令+算賬
- 結算:扣費+轉賬
MCC產業編碼
MCC,全名為Merchant Category Code。即商戶行業代碼,代表商戶所在行業。由中國銀聯統一設置並由各家支付機構及銀行共同使用的分類編碼,和其他特定資訊一起組成了商家POS機的商家編號
結算類型
- 對公:公司名義與第三方支付公司簽約,提供公司的對公銀行帳戶
- 對私:個人與第三方支付公司簽約,提供商戶法人或指定人的個人銀行帳戶
備付金
第三方支付公司在各銀行開立的帳戶,通常用作預存或留存在銀行機構的貨幣資金,以及由支付機構為客戶代收或代付的貨幣資金
二清
手續費
- 保底費率:交易額比較小時,必須收取的手續費率
- 封頂費率:大額交易(每個管道可能收取不同)時,收取的最高手續費率
銀行縮寫簡稱
到帳
t+1为第二个工作日到账;
t+0为当天工作日到账;
d+1为第二天到账(包含休息日,节假日);
d+0为全年当天到账(包含休日,节假日);
代付
商家系統資金代付
使用者資訊
- openid是微信用戶在公眾號appid下的唯一用戶識別(appid不同,則獲取到的openid就不同),可用於永久標記一個用戶,同時也是微信JSAPI支付的必傳參數
- buyer_id
- userId
補單
對帳
頻道
- 螞蟻金服開放式平台
- 微信支付開發文檔
- 微信開放社區-微信支付
- 中國銀聯開放平台
- 匯付天下
跨境支付
一點介紹嚴查重罰跨境支付「無照駕駛」 2018年第三方跨國支付產業研究報告
原則
- 支付結果判斷:明確成功才成功,明確失敗就失敗,狀態未知為支付中
- 程式碼設計上註意膠水層對外部介面的轉換,並在日誌或數據層面對原始數據的保存,不過度消化數據,適當抽象(因為可能會遇到一個字段回來轉換拼湊的情景)
可能遇到的坑
- 上游渠道域名或ip變更帶來的介面不可用,假如在沒有完善的監控或切至備用渠道或域名,只能兩眼一抹黑,被動的處理bug
- 由於第一條,多留意支付管道相關公告,留意自己伺服器或網域備案相關儲值或帳號到期等問題
安全
加解密
工具
- ssl工具及各類加解密線上演算法--開始收費,不推薦
- RSA公鑰與私鑰的產生以及PKCS#1與PKCE#8格式的轉換
- 各類加解密工具
- RSA私鑰及公鑰產生工具: 使用支付寶提供的一鍵產生工具
- 銀聯號查詢http://www.5cm.cn/bank/
- 身分證號碼驗證查詢https://shenfen.supfree.net/
- 根據銀行卡號碼取得銀行卡歸屬行以及logo圖標
- 銀行卡真實性驗證https://ccdcapi.alipay.com/validateAndCacheCardInfo.json?_input_charset=utf-8&cardNo=6217002430035835629&cardBinCheck=true
- 根據銀行縮寫單字取得該行logo https://apimg.alipay.com/combo.png?d=cashier&t=ABC
- 中國銀聯開放平台提供的輔助工具集
- 微信支付API v3 Postman腳本使用指南
系統架構
國外的支付平台工具
- stripe
- Paypal
- Pefectmoney
- Advcash
- Webmoney
- Okey
- Fasapay
- Tether
- Bitcoin
- Payeer
- 全球支付工具清單參考>> https://www.shopify.com/payment-gateways
聚合支付包(庫)
- Javen205/IJPay IJPay 讓支付觸手可及,封裝了微信支付、支付寶支付、銀聯支付常用的支付方式以及各種常用的接口
- Payum/PayumPHP 7+ Payment processing library. It offers everything you need to work with payments: Credit card & offsite purchasing, subscriptions, payouts etc. - provided by Forma-Pro
- Exrick/xpayXPay個人免簽證收款系統完全免費資金直接到達本人帳號
- phoenixg/omnipay-pingpp一個聚合了支付寶(APP、Wap、PC、即時到賬、掃碼、企業付款),微信(APP、公眾號、紅包), 銀聯網關、銀聯企業網銀、Apple Pay、QQ 錢包、易寶支付、百度錢包、京東支付、京東白條、招行一網通、分期支付等國內主流支付管道的聚合支付網關
- helei112g/paymentPayment是php版本的支付聚合第三方sdk,整合了微信支付、支付寶支付、招商一網通支付。提供統一的呼叫接口,方便快速接取各種付款、查詢、退款、轉帳能力。服務端接入支付功能,方便、快捷
- laravel-pay 可能是我用過的最優雅的Alipay 和WeChat 的laravel 支付擴充包了
- FastPay一個使用LiveData整合的微信、支付寶、銀聯支付的小巧庫
主頁或博客
- 梁川部落格:出家如初成佛有餘--曾經的第三方支付從業者,現在區塊鏈從業者
- 梁川知乎
- 接蒜君的微信公眾號:jiesuanjun, 點擊此連結開啟二維碼圖片
- 樂刷聚合支付文檔
支付平台架構
- 我對支付平台架構設計的一些思考
- 《58到家支付系統架構與實務》蔡敏.pdf
- 劉恆-盒子科技聚合支付系統演進.pdf
- 李勝軍-美的支付架構演進.pdf
- 支付平台架構設計評審核心重點與最佳實務.pdf
- 馬蜂窩支付中心架構演進
書籍
- 支付大廳中國支付清協會培訓課程精選系列
- 行動支付使用者體驗設計
- 行動支付理論與實務
- 深度支付
- 行動金融:支付革命
- 網路金融弄潮兒: 第三方支付
- 螞蟻金服: 從支付寶到新金融生態圈
- 支付寶體驗設計精髓
課題