You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rails中集成Redsys实现信用卡与Bizum支付?

Redsys集成Bizum支付问题解答

我在Rails应用中用Redsys处理信用卡支付,已经通过redsys gem完成配置,信用卡交易功能正常运行。现在需要保留现有信用卡支付功能的同时,集成Bizum作为支付方式,有以下疑问:

  1. 要在Redsys请求中添加哪些额外参数,才能同时启用Bizum支付与信用卡支付?
  2. 是否需要修改DS_MERCHANT_TRANSACTIONTYPE或其他字段来正确处理Bizum交易?
  3. 有没有官方文档或推荐方案用于在Rails中通过Redsys集成Bizum?

现有Redsys请求代码

module RedsysHelper
  def redsys_fields_for(member)
    Redsys::V2::RequestParams.new(Rails.application.secrets.redsys_merchant_secret,
                                  'DS_MERCHANT_ORDER' => DateTime.now.to_i + member.id,
                                  'DS_MERCHANT_URLOK' => thank_you_url(member),
                                  'DS_MERCHANT_URLKO' => order_url(member, accepted: false),
                                  'DS_MERCHANT_AMOUNT' => member.total.cents,
                                  'DS_MERCHANT_TITULAR' => member.user.full_name,
                                  'DS_MERCHANT_TERMINAL' => Rails.application.secrets.redsys_terminal,
                                  'DS_MERCHANT_CURRENCY' => Redsys.currency_code('EUR'),
                                  'DS_MERCHANT_MERCHANTURL' => "https://aranjewels.com/orders/#{member.reference}/notifications",
                                  'DS_MERCHANT_MERCHANTCODE' => Rails.application.secrets.redsys_merchant_code,
                                  'DS_MERCHANT_TRANSACTIONTYPE' => Redsys.transaction_code(:authorization),
                                  'DS_MERCHANT_PRODUCTDESCRIPTION' => member.reference,
                                  'DS_MERCHANT_MERCHANTNAME' => t('config.store_name'),
                                  'DS_MERCHANT_CONSUMERLANGUAGE' => Redsys.locale_code(I18n.locale)
                                 )
  end
end

问题解答

1. 启用Bizum所需的额外参数

要同时支持信用卡和Bizum支付,需添加以下参数到Redsys请求中:

  • DS_MERCHANT_BIZUM:设置为'S'(表示启用Bizum支付选项)
  • DS_MERCHANT_BIZUM_PHONE(可选):如果想预先填写用户手机号,可传入带国际区号的号码(比如'+34600123456'),用户仍可在支付页面修改

2. 交易类型及其他字段修改

  • DS_MERCHANT_TRANSACTIONTYPE:无需修改,保持原有的授权类型(0对应authorization)即可,Bizum交易同样适用该类型。
  • 其他字段:保持现有配置即可,无需额外调整,除非你需要针对Bizum做特殊的订单描述或商户信息,但这不是强制要求。

3. 官方文档与Rails集成方案

  • Redsys官方提供了完整的Bizum集成文档,你可以通过商户后台获取最新的技术规范(重点查看"Bizum支付集成章节")。
  • 对于Rails环境,直接基于现有redsys gem扩展即可:gem本身支持自定义参数传递,只需在RequestParams中添加Bizum相关字段即可,无需额外依赖。
  • 注意:集成前需确保你的Redsys商户账户已开通Bizum支付权限,否则即使添加参数也不会显示Bizum选项。

修改后的示例代码

module RedsysHelper
  def redsys_fields_for(member)
    Redsys::V2::RequestParams.new(Rails.application.secrets.redsys_merchant_secret,
                                  'DS_MERCHANT_ORDER' => DateTime.now.to_i + member.id,
                                  'DS_MERCHANT_URLOK' => thank_you_url(member),
                                  'DS_MERCHANT_URLKO' => order_url(member, accepted: false),
                                  'DS_MERCHANT_AMOUNT' => member.total.cents,
                                  'DS_MERCHANT_TITULAR' => member.user.full_name,
                                  'DS_MERCHANT_TERMINAL' => Rails.application.secrets.redsys_terminal,
                                  'DS_MERCHANT_CURRENCY' => Redsys.currency_code('EUR'),
                                  'DS_MERCHANT_MERCHANTURL' => "https://aranjewels.com/orders/#{member.reference}/notifications",
                                  'DS_MERCHANT_MERCHANTCODE' => Rails.application.secrets.redsys_merchant_code,
                                  'DS_MERCHANT_TRANSACTIONTYPE' => Redsys.transaction_code(:authorization),
                                  'DS_MERCHANT_PRODUCTDESCRIPTION' => member.reference,
                                  'DS_MERCHANT_MERCHANTNAME' => t('config.store_name'),
                                  'DS_MERCHANT_CONSUMERLANGUAGE' => Redsys.locale_code(I18n.locale),
                                  # 添加Bizum相关参数
                                  'DS_MERCHANT_BIZUM' => 'S',
                                  # 可选:预先填写用户手机号
                                  # 'DS_MERCHANT_BIZUM_PHONE' => "+34#{member.user.phone}"
                                 )
  end
end

内容的提问来源于stack exchange,提问作者Yuvraj Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 22:25:15