2016-10-17 32 views
1

我正在建立一个双边市场与RoR, ,我想用条纹来处理付款。红宝石在铁轨市场和条纹

我希望用户做出请求并付款(但使用捕获错误,以后再收费),并在提供服务的用户接受或拒绝请求时收费(或取消)。

所以我到目前为止已经完成:

.Submiting .creating一个数据库中的新请求(用布尔statut)请求 。用户可以有效与否

但现在我不知道如何记录结果并更新此请求的法定条件,从而使得新的API调用更新付款。

任何人已经做到了吗?

回答

1

首先,你capture集倒是create the chargefalse

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_...'}) 
+0

非常感谢Ywain,我想试试 – Tomas

+0

感谢张贴在退款过程中的信息。它也适用于我。 – Dave