Pay市场places集成:Stripe Connect和Braintree商户账号配置

Pay市场places集成:Stripe Connect和Braintree商户账号配置

【免费下载链接】pay Payments for Ruby on Rails apps 【免费下载链接】pay 项目地址: https://gitcode.com/gh_mirrors/pay/pay

Pay是一款为Ruby on Rails应用打造的支付处理解决方案,支持Stripe Connect和Braintree等多种支付处理器的市场places集成。本文将详细介绍如何配置Stripe Connect和Braintree商户账号,帮助开发者快速搭建多商户支付系统。

什么是支付市场places集成?

支付市场places集成允许平台应用连接多个商户账号,实现资金的分发与管理。常见的应用场景包括:

  • 电商平台(如Shopify)让商家直接接受客户付款
  • 服务平台(如Lyft)收集付款后再分发给服务提供者

Pay通过统一的API抽象,简化了Stripe Connect和Braintree等支付处理器的市场places功能集成。

Stripe Connect配置指南

1. 基础设置

Stripe Connect支持多种账户类型,适合不同的业务场景。要在Rails模型中添加商户功能,只需简单配置:

class User
  pay_merchant
end

2. 创建Stripe商户账号

通过代码创建和管理Stripe商户账号:

@user = User.last
@user.set_merchant_processor :stripe
@user.merchant_processor.create_account  # 创建Stripe账户
@user.merchant_processor.account_link(refresh_url: your_url, return_url: your_url)  # 获取账户链接
@user.merchant_processor.login_link  # 获取登录链接

3. 三种支付模式

Stripe Connect提供三种主要支付模式,适用于不同业务需求:

直接收费(Direct charges)

客户直接与平台上的商家交易,支付显示在商家账户上:

@user.stripe_account = "acct_123l5jadsgfas3"
@user.charge(10_00, application_fee_amount: 1_23)  # 10.00美元交易,平台收取1.23美元手续费
目标收费(Destination charges)

客户与平台交易,然后平台将部分资金转移给商家:

@user.charge(
  10_00,
  application_fee_amount: 1_23,
  transfer_data: {
    destination: '{{CONNECTED_STRIPE_ACCOUNT_ID}}'
  }
)
分离收费与转账(Separate charges and transfers)

先收费到平台账户,再按需分发给多个商家:

# 创建收费
pay_charge = @user.charge(100_00, transfer_group: '{ORDER10}')

# 分发给商家A
@merchant_a.merchant_processor.transfer(
  amount: 70_00,
  transfer_group: '{ORDER10}'
)

# 分发给商家B
@merchant_b.merchant_processor.transfer(
  amount: 20_00,
  transfer_group: '{ORDER10}'
)

4. 账户验证状态跟踪

Pay会自动监听account.updated事件,根据Stripe账户的charges_enabled状态更新onboarding_complete标志,方便跟踪商家账户的验证状态。

Braintree商户账号配置

1. 基础设置

Braintree市场places功能目前处于开发中,但已支持基本的商户账号配置:

class User
  pay_merchant
end

2. 分配商户账号

将子商户账号分配给客户,使其付款通过该商户账号处理:

@user.set_merchant_processor :braintree, processor_id: "provider_sub_merchant_account"

3. 创建市场交易

处理带有服务费的市场交易:

@user.payment_processor.charge(10_00, service_fee_amount: "1.00")  # 10.00美元交易,平台收取1.00美元服务费

Pay会将service_fee_amount存储在Pay::Chargeapplication_fee_amount字段中,便于后续对账和报表生成。

集成最佳实践

1. 选择合适的支付模式

收费类型适用场景
直接收费客户直接与商家交易,不感知平台存在
目标收费客户与平台交易,购买商家提供的产品或服务
分离收费与转账多商家参与同一交易,或交易时未知具体商家

2. 处理商家账户验证

确保商家完成必要的身份验证,以便正常接收付款:

  • Stripe:通过onboarding_complete?方法检查
  • Braintree:需要手动验证账户状态

3. 错误处理

Pay提供了专门的异常类处理支付错误:

  • Pay::BraintreeError:处理Braintree相关错误
  • Pay::StripeError:处理Stripe相关错误

总结

通过Pay的市场places集成,开发者可以轻松实现Stripe Connect和Braintree商户账号的配置与管理。无论是构建电商平台还是服务市场,Pay都提供了统一且强大的API,简化了复杂的支付流程。

要了解更多细节,请参考官方文档:

【免费下载链接】pay Payments for Ruby on Rails apps 【免费下载链接】pay 项目地址: https://gitcode.com/gh_mirrors/pay/pay

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值