首页 文章

如何在Stripe Connected Accounts API中为帐户收费?

提问于
浏览
1

如何在Stripe Connected Accounts API中为帐户的外部帐户收费?

我在我的系统上创建发票然后我想让用户付款 .

在第一个屏幕上,我列出了保存在系统上的付款帐户 . 这将是银行账户,信用卡,借记卡 .

当他们选择要支付的帐户时,这是我的麻烦开始的地方 .

这是我的代码

def pay_invoice invoice_id, source_id
    invoice = Invoice.find(invoice_id)
    account = Stripe::Account.retrieve(@account)
    charge_source = account.external_accounts.retrieve(source_id)

    c = Stripe::Charge.create(
        :amount => invoice.cents,
        :currency => "usd",
        #:customer => @account,
        :source => charge_source,
        :description => "Charge for invoice ##{invoice_id}"
    )

end

传入方法的source_id是我之前获得的外部帐户的ID .

我的第一次尝试是将其作为源传递,我收到错误“No such token”

2 回答

  • 1

    据我所知,没有通过连接帐户API向帐户收费的好方法 .

    我将为每个用户创建一个Stripe帐户,并为每个用户创建一个Stripe联系人 .

    然后代码最终看起来像这样:

    def pay_invoice invoice_id, source_id
        invoice = Invoice.find(invoice_id)
        c = Stripe::Customer.retrieve(@customer_id)
        paying_source = nil
        c.sources.each do | source|
            if source.id == source_id 
                paying_source = source
            end
        end
    
        c = Stripe::Charge.create(
            :amount => invoice.cents,
            :currency => "usd",
            :customer => c,
            :source => paying_source,
            :description => "Charge for invoice ##{invoice_id}"
        )
    
        invoice.status = "paid"
        invoice.save
    
    end
    
  • 0

    当您从用户使用信用卡/借记卡时,Stripe会返回一个令牌,您可以做两件事1.您可以向客户收取一次费用,令牌将过期 . 2.使用该令牌创建客户并保存以备将来付款因此使用这种方式您可以进一步收费

    在这里,您正在使用该令牌进行收费,并且它将过期,因此下一个相同的令牌会出错 .

相关问题