-
Notifications
You must be signed in to change notification settings - Fork 2
信用卡定期定額
Cellvin Chung edited this page Feb 26, 2020
·
3 revisions
版本:1.0
完成 config/initializers/newebpay.rb
中的 periodical_callback
, periodical_notify_callback
設定
- 若沒有設定
periodical_callback
,交易完成後,付款人將停留在藍新金流交易完成頁面。 - 若沒有設定
periodical_notify_callback
,每期執行信用卡授權交易完成後,不會回傳資料。
# view
<%= newebpay_periodical_pay_button '顯示文字', order_number: "訂單編號", description: "產品名稱",
price: "每期金額", email: "email", class: 'btn btn-success', id: 'periodical' %>
參數 | 說明 | 必填 | 預設 |
---|---|---|---|
order_number | 商店訂單編號 限英、數、 _ ,上限 20 字。 同商店中不可重複。 |
V | |
description | 產品名稱 上限 100 字。 |
V | |
price | 委託金額 | V | |
period_type | 授權週期 daily:固定天數 weekly:每週 monthly:每月 yearly:每年 |
V | monthly |
period_point | 週期授權時間點 當 period_type 為daily 時,限 2 ~ 364,以授權日期隔日起算。當 period_type 為weekly 時,限 1 ~ 7,代表週一~週日 當 period_type 為monthly 時,限 01 ~ 31,代表 1 號~31 號。若當月沒該日期,則自動調整為當月最後一天。 當 period_type 為yearly 時,格式為日期 md ,如0125 代表 1 月 25 日。 |
V | 01 |
period_times | 授權期數 (執行交易次數) 若期數大於信用卡到期日,則自動以信用卡到期日為最終期數。 |
V | 99 |
check_type | 檢查模式 1:立刻執行 10 元授權。 若成功,將立即自動取消授權,付款人將不會被扣款。 若失敗,則該筆委託 單將自動取消。 2:立即執行委託金額授權 3:不檢查 詳細說明見原文件 |
V | 1 |
付款人電子信箱 | V | ||
merchant_id | 商店代號 |
config/initializers/newebpay.rb 中的 merchant_id
|
|
email_editable | 是否可修改 Email 1:可修改 0:不可修改 |
0 | |
comment | 備註 上限 300 字 |
||
payment_info | 是否開放填寫付款人資訊 Y:是 N:否 |
N | |
order_info | 是否開放填寫收件人資訊 Y:是 N:否 |
N | |
cancel_url | 取消支付返回網址 |
- 詳細說明參見原文件,部分參數名稱與預設值與原文件不同。
- 原文件其他的必填欄位會自動產生,不需處理。
- 原文件的 ReturnURL、NotifyURL 已分別整合至
config/initializers/newebpay.rb
中的periodical_callback
、periodical_notify_callback
,不需再指定路徑。
在測試環境中,卡號請填 4000-2211-1111-1111,到期日及背面三碼任意填寫。
# config/initializers/newebpay.rb
config.periodical_callback do |newebpay_response|
if newebpay_response.success?
flash[:notice] = 'success'
redirect_to root_path
else
Rails.logger.info "Newebpay Periodical Payment Not Succeed: #{newebpay_response.status}: #{newebpay_response.message} (#{newebpay_response.to_json})"
end
end
- 付款是否成功:newebpay_response.success?
- 請在
periodical_notify_callback
處理資料,periodical_callback
僅處理頁面redirect
# config/initializers/newebpay.rb
config.periodical_notify_callback do |newebpay_response|
if newebpay_response.success?
PeriodicalTransaction.find_by(period_no: newebpay_response.period_no)
.update_attributes!(paid: true)
else
Rails.logger.info "Newebpay Periodical Payment Not Succeed: #{newebpay_response.status}: #{newebpay_response.message} (#{newebpay_response.to_json})"
end
end
- 參見原文件第五、六點,可直接使用
Result
參數,原參數名稱underscore
後為method-
newebpay_response.merchant_id
,newebpay_response.trade_no
-