Pay市场places集成:Stripe Connect和Braintree商户账号配置
【免费下载链接】pay Payments for Ruby on Rails apps 项目地址: 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::Charge的application_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 项目地址: https://gitcode.com/gh_mirrors/pay/pay
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



