摘要:支持名稱網(wǎng)關(guān)支持動作支持回調(diào)備注支付寶支付支付支付查詢退款支付支付寶掃碼支付支付支付查詢退款支付支付寶手機(jī)網(wǎng)站支付支付支付查詢退款支付支付寶網(wǎng)站支付支付支付查詢退款支付微信支付支付支付查詢退款退款查詢支付通知退款通知微信支付支付支付查詢退款
GitHub
https://github.com/RunnerLee/...
支持名稱 | 網(wǎng)關(guān) | 支持動作 | 支持回調(diào) | 備注 |
---|---|---|---|---|
alipay_app | 支付寶 APP 支付 | 支付/支付查詢/退款 | 支付 | |
alipay_qr | 支付寶掃碼支付 | 支付/支付查詢/退款 | 支付 | |
alipay_wap | 支付寶手機(jī)網(wǎng)站支付 | 支付/支付查詢/退款 | 支付 | |
alipay_web | 支付寶 PC 網(wǎng)站支付 | 支付/支付查詢/退款 | 支付 | |
wechat_app | 微信 APP 支付 | 支付/支付查詢/退款/退款查詢 | 支付通知/退款通知 | |
wechat_h5 | 微信 H5 支付 | 支付/支付查詢/退款/退款查詢 | 支付通知/退款通知 | 內(nèi)置抓取付款鏈接功能 |
wechat_mina | 微信小程序支付 | 支付/支付查詢/退款/退款查詢 | 支付通知/退款通知 | |
wechat_official | 微信公眾號支付 | 支付/支付查詢/退款/退款查詢 | 支付通知/退款通知 | |
wechat_qr | 微信掃碼支付 | 支付/支付查詢/退款/退款查詢 | 支付通知/退款通知 | |
union_web | 銀聯(lián)網(wǎng)頁支付 | 支付/支付查詢 | 支付通知 | 較舊版本 |
union_app | 銀聯(lián)網(wǎng)頁支付 | 支付 | 支付通知 | 較舊版本 |
paypal_express_checkout | PayPal 快速結(jié)賬 | 支付/支付查詢 | 支付通知 | 不穩(wěn)定 |
在對接第三方支付中, 尤其是需要對接多個第三方支付時, 需要閱讀第三方文檔然后花費(fèi)大量時間拼裝和調(diào)試參數(shù), 例如調(diào)用第三方下單創(chuàng)建支付, 如果需要同時接入微信跟支付寶支付, 那么就需要收集文檔, 可想而知是非常麻煩的(其實(shí)還好.. hhh..).
這個組件提供的把與第三方通信分為三部分:
request, 請求, 主動調(diào)用第三方
response, 響應(yīng), 主動調(diào)用第三方獲得的響應(yīng)
notification, 通知, 第三方的各類通知
而每部分又部分為不同的動作, 每個動作綁定一個固定的表單 (Form), 每個表單的內(nèi)容是固定的.
例如主動調(diào)用第三方下單創(chuàng)建支付 (ChargeRequest), 他使用的表單是 ChargeRequestForm. 填寫好表單后, 傳入組件, 即可由組件加工好參數(shù)并調(diào)用第三方支付.
這樣就能做到, 只需要了解組件的表單內(nèi)容, 就可以接入多個第三方支付, 一勞永逸 (不存在的 hhh).
使用這里以支付寶 PC 網(wǎng)站支付為例, 如果需要使用其他的支付網(wǎng)關(guān), 只需要修改實(shí)例化 Cashier 時傳入的 $gateway 即可.
注意, 組件使用的基本貨幣單位是 分.
"xxxx", "app_private_key" => "xxxxx", "alipay_public_key" => "xxxxx", ]; // 創(chuàng)建實(shí)例, 傳入要使用的 Gateway $cashier = new Cashier("alipay_web", $config);
創(chuàng)建付款
"151627101400000071", "subject" => "testing", "amount" => 1, "currency" => "CNY", "description" => "testing description", "return_url" => "https://www.baidu.com", "expired_at" => "2018-01-23 19:00:00", ]; $form = $cashier->charge($data); // 以 laravel 為例 return redirect($form->get("charge_url"));
查詢支付
query([ "order_id" => "151627101400000071", ]); var_dump("paid" === $form->get("status"));
接收通知
notify("charge"); var_dump("paid" === $form->get("status")); var_dump($form->get("trade_sn")); // 取得第三方交易號
退款
refund([ "order_id" => "151627101400000071", "refund_id" => "3151627101400000071", "total_amount" => 1, "refund_amount" => 1, ]);表單及字段說明 ChargeRequestForm
字段名 | 是否必須 | 字段說明 | 備注 |
---|---|---|---|
order_id | 是 | 訂單號 | |
subject | 是 | 訂單標(biāo)題 | |
amount | 是 | 訂單金額 | 注意部分支付渠道有金額上線限制 |
currency | 是 | 訂單貨幣 | 注意支付渠道支付 |
description | 是 | 訂單簡述 | 支付渠道會有不同的長度限制 |
user_ip | 否 | 用戶IP | |
return_url | 否 | 回調(diào)地址 | web類型的支付渠道必須填 |
show_url | 否 | 展示地址 | |
body | 否 | 訂單詳細(xì)說明 | 這個參數(shù)我應(yīng)該刪掉 |
expired_at | 否 | 過期時間 | unix 時間戳 |
created_at | 否 | 創(chuàng)建時間 | unix 時間戳, 想不到吧, 連這個鬼都要?? |
其他依舊待補(bǔ)充...
FAQQ: 相比其他的 sdk 優(yōu)點(diǎn)在哪 ?
A: 無論標(biāo)榜多優(yōu)雅多好用的 sdk, 大多都是要求你按照第三方的參數(shù)名傳入?yún)?shù), 那就免不了要看文檔, 免不了在代碼里要做很多處理. 我想要的是, 從數(shù)據(jù)庫里取出訂單后, 做一遍處理就能解決接入多種支付.
Q: 是不是就完全不必看第三方支付的文檔了 ?
A: 并不是, 我建議還是需要看, 并且組件中某些支付 (例如微信公眾號) 是需要傳入一些特殊參數(shù)的. 組件只是幫你解決煩心的調(diào)用問題.
LicenseMIT
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/28700.html
摘要:幾個月之內(nèi)就開發(fā)了幾十款小程序的開發(fā)者陳林,有著自己的解答。資深小程序開發(fā)者陳林,是小程序風(fēng)口下的探索者之一,借助小程序無需安裝,易于傳播的特點(diǎn),陳林以小游戲類目為核心,配合小程序間可相互跳轉(zhuǎn)的特性。 showImg(https://segmentfault.com/img/remote/1460000020165110);你是一條產(chǎn)品經(jīng)理,現(xiàn)在要出一個大型需求的方案,你會怎么做? ...
摘要:本文是淺析微信支付系列文章的第十五篇,主要講解如何開通免充值產(chǎn)品功能流程和其中的注意事項(xiàng),對于接口升級會重要講解,避免爬坑。 本文是【淺析微信支付】系列文章的第十五篇,主要講解如何開通免充值產(chǎn)品功能流程和其中的注意事項(xiàng),對于接口升級會重要講解,避免爬坑。 淺析微信支付系列已經(jīng)更新十五篇了喲~,沒有看過的朋友們可以看一下哦。 淺析微信支付:商戶平臺代金券或立減優(yōu)惠開通、指定用戶代金券發(fā)...
摘要:相比起來,支付寶的下單動作由于是在前端調(diào)用的,因此,站點(diǎn)需要將自己的訂單信息返回到客戶端,然后又客戶端發(fā)起調(diào)用支付寶的下單接口,這樣一來,如果安全加密等做的不到位,很容易被惡意用戶篡改信息。 作為一個具備用戶交易能力的網(wǎng)站,豐富它的支付渠道對于獲客和提高日活都有不可估量的積極作用。算起來,我接觸過的支付系統(tǒng)也有幾十個了,在這里總結(jié)一下我所接觸過的支付系統(tǒng)對外接口的設(shè)計(jì)方案。 1. 支付...
摘要:而適配器其實(shí)在中應(yīng)該是比較常見的一種了。在維基百科中,關(guān)于適配器模式的定義為在軟件工程中,適配器模式是一種軟件設(shè)計(jì)模式,允許從另一個接口使用現(xiàn)有類的接口。 適配器設(shè)計(jì)模式在JavaScript中非常有用,在處理跨瀏覽器兼容問題、整合多個第三方SDK的調(diào)用,都可以看到它的身影。 其實(shí)在日常開發(fā)中,很多時候會不經(jīng)意間寫出符合某種設(shè)計(jì)模式的代碼,畢竟設(shè)計(jì)模式就是老前輩們總結(jié)提煉出來的一些能...
閱讀 2785·2021-10-14 09:42
閱讀 3608·2021-10-11 10:59
閱讀 2941·2019-08-30 11:25
閱讀 3073·2019-08-29 16:25
閱讀 3223·2019-08-26 17:40
閱讀 1224·2019-08-26 13:30
閱讀 1143·2019-08-26 11:46
閱讀 1329·2019-08-23 15:22