Allpay 歐付寶
這是歐付寶 API 的 Ruby 包裝,更多資訊參考他們的官方文件。
安裝
gem install allpay_client
使用
client = Allpay::Client.new({
merchant_id: '2000132',
hash_key: '5294y06JbISpM5x9',
hash_iv: 'v77hoKGq4kWxNNIS',
mode: :test
})
client.request '/Cashier/QueryTradeInfo',
MerchantTradeNo: '0457ce27',
TimeStamp: Time.now.to_i
歐付寶共有 5 個 API:
- /Cashier/AioCheckOut
- /Cashier/QueryTradeInfo
- /Cashier/QueryPeriodCreditCardTradeInfo
- /CreditDetail/DoAction
- /Cashier/AioChargeback
每個 API 有哪些參數建議直接參考歐付寶文件,不過要注意幾點:
- 原本 API 都需要
MerchantID
與CheckMacValue
,不過Client#request
已經都處理好了,使用時可忽略這兩個參數,正如上述範例一樣。 /Cashier/AioCheckOut
回傳的內容是 HTML,這個請求應該是交給瀏覽器發送的,所以不應該寫出client.request '/Cashier/AioCheckOut'
這樣的內容。
Allpay::Client
實體方法 | 回傳 | 說明 |
---|---|---|
request(path, **params) |
Net::HTTPResponse |
發送 API 請求 |
make_mac(**params) |
String |
用於產生 CheckMacValue ,單純做加密,params 需要完整包含到 MerchantID |
query_trade_info(merchant_trade_number, platform = nil) |
Hash |
/Cashier/QueryTradeInfo 的捷徑方法,將 TimeStamp 設定為當前時間 |
query_period_credit_card_trade_info(merchant_trade_number) |
Hash |
/Cashier/QueryPeriodCreditCardTradeInfo 的捷徑方法,將 TimeStamp 設定為當前時間 |
使用範例
git clone [email protected]:tonytonyjan/allpay.git
cd allpay
bundle install
ruby examples/server.rb