ruby 在 rails 市场和条纹上
ruby on rails marketplace and stripe
我正在用 RoR 建立一个双边市场,
我想使用 stripe 来处理付款。
我希望用户提出请求并付款,(但使用 capture false,稍后收费),并在提供服务的用户接受或拒绝请求时收费(或取消)。
到目前为止我做了什么:
.提交请求
.在数据库中创建一个新请求(使用布尔值)
.用户可否有效
但现在我不知道如何记录结果并更新此请求的状态,因此需要重新调用 api 来更新付款。
有人做过吗?
首先,您 create the charge 将 capture
设置为 false
:
charge = Stripe::Charge.create({
amount: 1000,
currency: 'usd',
destination: 'acct_...',
application_fee: 200,
capture: false,
})
如果收费成功,您将在您的数据库中保存收费的 ID (charge.id
)。
然后,如果交易得到确认,您会capture the charge像这样:
# Retrieve charge_id from your database
charge = Stripe::Charge.retrieve(charge_id)
charge.capture
如果交易被取消,您将在refunding the charge之前解除授权:
# Retrieve charge_id from your database
refund = Stripe::Refund.create({
charge: charge_id,
})
请注意,未捕获的费用是 automatically released after 7 days。
在上面,我假设你是在创建收费 through the platform, i.e. with the destination
parameter. If you are instead charging directly on connected accounts, you'd need to modify the requests to use the Stripe-Account
header:
# Create the charge directly on the connected account
charge = Stripe::Charge.create({
amount: 1000,
currency: 'usd',
application_fee: 200,
capture: false,
}, {stripe_account: 'acct_...'})
# Save charge.id in your database
# Capture the charge
charge = Stripe::Charge.retrieve(charge_id, {stripe_account: 'acct_...'})
charge.capture
# Release the uncaptured charge
refund = Stripe::Refund.create({
charge: charge_id,
}, {stripe_account: 'acct_...'})
我正在用 RoR 建立一个双边市场, 我想使用 stripe 来处理付款。
我希望用户提出请求并付款,(但使用 capture false,稍后收费),并在提供服务的用户接受或拒绝请求时收费(或取消)。
到目前为止我做了什么:
.提交请求 .在数据库中创建一个新请求(使用布尔值) .用户可否有效
但现在我不知道如何记录结果并更新此请求的状态,因此需要重新调用 api 来更新付款。
有人做过吗?
首先,您 create the charge 将 capture
设置为 false
:
charge = Stripe::Charge.create({
amount: 1000,
currency: 'usd',
destination: 'acct_...',
application_fee: 200,
capture: false,
})
如果收费成功,您将在您的数据库中保存收费的 ID (charge.id
)。
然后,如果交易得到确认,您会capture the charge像这样:
# Retrieve charge_id from your database
charge = Stripe::Charge.retrieve(charge_id)
charge.capture
如果交易被取消,您将在refunding the charge之前解除授权:
# Retrieve charge_id from your database
refund = Stripe::Refund.create({
charge: charge_id,
})
请注意,未捕获的费用是 automatically released after 7 days。
在上面,我假设你是在创建收费 through the platform, i.e. with the destination
parameter. If you are instead charging directly on connected accounts, you'd need to modify the requests to use the Stripe-Account
header:
# Create the charge directly on the connected account
charge = Stripe::Charge.create({
amount: 1000,
currency: 'usd',
application_fee: 200,
capture: false,
}, {stripe_account: 'acct_...'})
# Save charge.id in your database
# Capture the charge
charge = Stripe::Charge.retrieve(charge_id, {stripe_account: 'acct_...'})
charge.capture
# Release the uncaptured charge
refund = Stripe::Refund.create({
charge: charge_id,
}, {stripe_account: 'acct_...'})