AllPay 全方位金流介接 SDK for Node.js
安裝方式
建議使用 Node.js 套件管理工具 npm 安裝。
$ npm install allpay
使用方式
初始化
安裝完畢後,你可以使用 require
載入套件:
var Allpay = ;
var allpay = merchantID: "YOUR_MERCHANT_ID" hashKey: "YOUR_HASH_KEY" hashIV: "YOUR_HASH_IV" mode: "test" debug: false;
merchantID
:必填,廠商編號 (由 AllPay 提供)
hashKey
:必填,全方位金流介接的 HashKey。
hashIV
:必填,全方位金流介接的 HashIV。
mode
:選填,於生產環境使用時請設定為 "production" (預設為 "test")
debug
:選填,設為 true 可查看除錯訊息 (預設為 false)
支援以下功能
- 設定連線:
allpay.setHost(options)
- 取得目前設定:
allpay.getConfig()
- 訂單產生:
allpay.aioCheckOut(options, callback)
- 訂單查詢:
allpay.queryTradeInfo(options, callback)
- 信用卡定期定額訂單查詢:
allpay.queryCreditCardPeriodInfo(options, callback)
- 信用卡關帳/退刷/取消/放棄:
allpay.doAction(options, callback)
- 廠商通知退款:
allpay.aioChargeback(options, callback)
- 廠商申請撥款/退款:
allpay.capture(options, callback)
- 產生交易檢查碼:
allpay.genCheckMacValue(data, encryptType)
- 驗證資料正確性:
allpay.isDataValid(data, encryptType)
使用範例
設定連線(非必要)
allpay;
baseUrl
:選填,介接網址 (預設為 payment-stage.allpay.com.tw)
port
:選填,連接埠 (預設為 443)
useSSL
:選填,使用 SSL 連線 (預設為 true)
取得目前設定
var config = allpay;
訂單產生
商品參數設定:
Items: name: "商品名稱" price: 商品單價 currency: "幣別單位" quantity: 商品數量
發票商品內容參數設定:
InvoiceItems: name: "商品名稱" count: 商品數量 word: "商品單位" price: 商品單價 taxType: "商品課稅別"
額外可用參數:
paymentButton
:選填,表單按鈕要顯示的文字。(若沒有設定此參數,所產生的表單會包含自動送出的語法)
- 一般交易
allpay;
- 一般交易(含電子發票)
allpay;
- 信用卡定期定額
allpay;
- 回應內容
url: 'https://payment-stage.allpay.com.tw/Cashier/AioCheckOut/V2' data: MerchantID: '2000214' MerchantTradeNo: 'TS20160502000001' MerchantTradeDate: '2016/05/02 00:00:00' PaymentType: 'aio' TotalAmount: 100 TradeDesc: '商城購物測試' ItemName: '商品一 100 元 x 1' ReturnURL: 'http://localhost/receive' ChoosePayment: 'ALL' CheckMacValue: '5D6D710C359E8ACC20069C2FFFE34F24' html: '<form id="_allpayForm" method="post" target="_self" action="https://payment-stage.allpay.com.tw/Cashier/AioCheckOut/V2"><input type="hidden" name="MerchantID" value="2000214" /><input type="hidden" name="MerchantTradeNo" value="TS20160502000001" /><input type="hidden" name="MerchantTradeDate" value="2016/05/02 00:00:00" /><input type="hidden" name="PaymentType" value="aio" /><input type="hidden" name="TotalAmount" value="100" /><input type="hidden" name="TradeDesc" value="商城購物測試" /><input type="hidden" name="ItemName" value="商品一 100 元 x 1" /><input type="hidden" name="ReturnURL" value="http://localhost/receive" /><input type="hidden" name="ChoosePayment" value="ALL" /><input type="hidden" name="CheckMacValue" value="5D6D710C359E8ACC20069C2FFFE34F24" /><script type="text/javascript">document.getElementById("_allpayForm").submit();</script></form>'
訂單查詢
allpay;
回應內容
HandlingCharge: '5' ItemName: '商品一 100 元 x1' MerchantID: '2000214' MerchantTradeNo: 'TS20160502000001' PayAmt: '0' PaymentDate: '2016/05/02 00:01:23' PaymentType: 'Credit_CreditCard' PaymentTypeChargeFee: '5' RedeemAmt: '0' TradeAmt: '100' TradeDate: '2016/05/02 00:00:00' TradeNo: '1605020000459168' TradeStatus: '1' CheckMacValue: 'ABE4DDCB8F9895B7FD33858EFB095422'
信用卡定期定額訂單查詢
allpay;
回應內容
ExecStatus: '1' MerchantID: '2000214' MerchantTradeNo: 'TS20160502000001' TradeNo: '1605020000459168' RtnCode: 1 PeriodType: 'M' Frequency: 1 ExecTimes: 6 PeriodAmount: 100 amount: 100 gwsr: 10530824 process_date: '2016/05/02 00:01:23' auth_code: '777777' card4no: '2222' card6no: '431195' TotalSuccessTimes: 1 TotalSuccessAmount: 100 ExecLog: RtnCode: 1 amount: 100 gwsr: 10530824 process_date: '2016/05/02 00:01:23' auth_code: '777777'
信用卡關帳/退刷/取消/放棄
allpay;
回應內容
MerchantID: '2000214' MerchantTradeNo: 'TS20160502000001' TradeNo: '1605020000459168' RtnCode: '1' RtnMsg: 'OK'
廠商通知退款
allpay;
回應內容
status: '1' message: 'OK'
廠商申請撥款/退款
allpay;
回應內容
MerchantID: '2000214' MerchantTradeNo: 'TS20160502000001' TradeNo: '1605020000459168' RtnCode: '1' RtnMsg: 'OK' AllocationDate: '2016-05-05'
產生交易檢查碼
encryptType
:選填,加密類型 (預設為 MD5)
- MD5 加密
var checkMacValue = allpay;
- SHA256 加密
var checkMacValue = allpay;
驗證資料正確性
encryptType
:選填,加密類型 (預設為 MD5)
- 使用 MD5 加密來驗證資料
var isDataValid = allpay;
- 使用 SHA256 加密來驗證資料
allpay;
Callback
Callback 會返回 2 個參數,分別為 error 和一個 JSON 物件。
以下為範例 callback 函數:
{ if err console; else consoledirresponse; }
詳細參數說明請參閱全方位金流API介接技術文件。
License
MIT