我正在建立一个双边市场与RoR, ,我想用条纹来处理付款。红宝石在铁轨市场和条纹
我希望用户做出请求并付款(但使用捕获错误,以后再收费),并在提供服务的用户接受或拒绝请求时收费(或取消)。
所以我到目前为止已经完成:
.Submiting .creating一个数据库中的新请求(用布尔statut)请求 。用户可以有效与否
但现在我不知道如何记录结果并更新此请求的法定条件,从而使得新的API调用更新付款。
任何人已经做到了吗?
我正在建立一个双边市场与RoR, ,我想用条纹来处理付款。红宝石在铁轨市场和条纹
我希望用户做出请求并付款(但使用捕获错误,以后再收费),并在提供服务的用户接受或拒绝请求时收费(或取消)。
所以我到目前为止已经完成:
.Submiting .creating一个数据库中的新请求(用布尔statut)请求 。用户可以有效与否
但现在我不知道如何记录结果并更新此请求的法定条件,从而使得新的API调用更新付款。
任何人已经做到了吗?
首先,你capture
集倒是create the charge到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,即与destination
参数。如果您是不是收费directly on connected accounts,你需要修改使用Stripe-Account
头的请求:
# 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_...'})
非常感谢Ywain,我想试试 – Tomas
感谢张贴在退款过程中的信息。它也适用于我。 – Dave