這是綠界 API 的 Ruby 包裝,更多資訊參考他們的官方文件。
gem install ecpay_clienttest_client = Ecpay::Client.new(mode: :test)
production_client = Ecpay::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
)本文件撰寫時,綠界共有 8 個 API (全方位金流介接技術文件 V2.0.6):
| Endpoint | 說明 |
|---|---|
| /Cashier/AioCheckOut/V2 | 產生訂單 |
| /Cashier/QueryTradeInfo/V2 | 查詢訂單 |
| /Cashier/QueryCreditCardPeriodInfo | 信用卡定期定額訂單查詢 |
| /CreditDetail/DoAction | 信用卡關帳/退刷/取消/放棄 |
| /Cashier/Capture | 合作特店申請撥款 |
| /PaymentMedia/TradeNoAio | 下載合作特店對帳媒體檔 |
| /CreditDetail/QueryTrade/V2 | 查詢信用卡單筆明細記錄 |
| /CreditDetail/FundingReconDetail | 下載信用卡撥款對帳資料檔 |
詳細 API 參數請參閱綠界金流介接技術文件,注意幾點:
- 使用時不用煩惱
MerchantID與CheckMacValue,正如上述範例一樣。 /Cashier/AioCheckOut/V2回傳的內容是 HTML,這個請求應該是交給瀏覽器發送的,所以不應該寫出client.request '/Cashier/AioCheckOut/V2'這樣的程式碼。
| 實體方法 | 回傳 | 說明 |
|---|---|---|
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/V2 的捷徑方法,將 TimeStamp 設定為當前時間 |
query_credit_card_period_info(merchant_trade_number) |
Hash |
/Cashier/QueryCreditCardPeriodInfo 的捷徑方法,將 TimeStamp 設定為當前時間 |
generate_checkout_params |
Hash |
用於產生 /Cashier/AioCheckOut/V2 表單需要的參數,MerchantTradeDate、MerchantTradeNo、PaymentType,可省略。 |
git clone [email protected]:CalvertYang/ecpay.git
cd ecpay
bundle install
ruby examples/server.rb