Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tonytonyjan/allpay
歐付寶 API 的 Ruby 包裝。
https://github.com/tonytonyjan/allpay
allpay api-ruby ruby
Last synced: about 1 month ago
JSON representation
歐付寶 API 的 Ruby 包裝。
- Host: GitHub
- URL: https://github.com/tonytonyjan/allpay
- Owner: tonytonyjan
- License: mit
- Created: 2015-02-03T13:23:46.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2017-02-04T14:13:29.000Z (almost 8 years ago)
- Last Synced: 2024-09-26T05:52:48.266Z (3 months ago)
- Topics: allpay, api-ruby, ruby
- Language: Ruby
- Size: 29.3 KB
- Stars: 19
- Watchers: 5
- Forks: 10
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/tonytonyjan/allpay.svg?branch=master)](https://travis-ci.org/tonytonyjan/allpay)
# Allpay 歐付寶
這是歐付寶 API 的 Ruby 包裝,更多資訊參考他們的[官方文件](https://www.allpay.com.tw/Content/files/%E5%85%A8%E6%96%B9%E4%BD%8D%E9%87%91%E6%B5%81%E4%BB%8B%E6%8E%A5%E6%8A%80%E8%A1%93%E6%96%87%E4%BB%B6.pdf)。
- 這不是 Rails 插件,只是個 API 包裝。
- 使用時只需要傳送需要的參數即可,不用產生檢查碼,`allpay_client` 會自己產生。
- 錯誤代碼太多且會不斷增加,筆者不另行撰寫,官方也建議查網站上的代碼清單。## 安裝
```bash
gem install allpay_client
```## 使用
```ruby
test_client = Allpay::Client.new(mode: :test)
production_client = Allpay::Client.new({
merchant_id: 'MERCHANT_ID',
hash_key: 'HASH_KEY',
hash_iv: 'HASH_IV'
})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 有哪些參數建議直接參考歐付寶文件,注意幾點:
- 使用時不用煩惱 `MerchantID` 與 `CheckMacValue`,正如上述範例一樣。
- `/Cashier/AioCheckOut` 回傳的內容是 HTML,這個請求應該是交給瀏覽器發送的,所以不應該寫出 `client.request '/Cashier/AioCheckOut'` 這樣的程式碼。## Allpay::Client
實體方法 | 回傳 | 說明
--- | --- | ---
`request(path, **params)` | `Net::HTTPResponse` | 發送 API 請求
`make_mac(**params)` | `String` | 用於產生 `CheckMacValue`,單純做加密,`params` 需要完整包含到 `MerchantID`
`verify_mac(**params)` | `Boolean` | 用於檢查收到的參數,其檢查碼是否正確,這用在歐付寶物的 `ReturnURL` 與 `PeriodReturnURL` 參數上。
`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` 設定為當前時間
`generate_checkout_params` | `Hash` | 用於產生 `/Cashier/AioCheckOut` 表單需要的參數,`MerchantTradeDate`、`MerchantTradeNo`、`PaymentType`,可省略。## 使用範例
```bash
git clone [email protected]:tonytonyjan/allpay.git
cd allpay
bundle install
ruby examples/server.rb
```