gpt4 book ai didi

ruby-on-rails - Rails - Stripe::InvalidRequestError(必须提供来源或客户。)

转载 作者:行者123 更新时间:2023-12-04 14:11:04 24 4
gpt4 key购买 nike

我正在构建一个应用程序(基于在线资源)。您可以注册或使用设备登录。然后,您可以购买产品。或者制作您自己的 list 并销售您的产品。

我正在整合 Stripe。当我创建 Charge 时,我在控制台中收到此错误:Stripe::InvalidRequestError (Must provide source or customer.) .

这是用于充电操作的 orders_controller.rb 的代码:

Stripe.api_key = ENV["STRIPE_API_KEY"]
token = params[:stripeToken]

begin
charge = Stripe::Charge.create(
:amount => (@listing.price * 100).floor,
:currency => "usd",
:card => token
)
flash[:notice] = "Thanks for ordering!"
rescue Stripe::CardError => e
flash[:danger] = e.message
end

当然,我正在查看这里的 Stripe API 文档: Charge documentation example在这里: Charge full API Reference

我不知道如何处理 :resourcecustomer .我在网络上的其他 Material 中看到有些人创造了客户。在其他网站上,它说 :card已弃用,所以我有点困惑。

我将离开我的项目的github存储库,请随意查看。我也在尝试处理转移和接收者。 Project Repository

谢谢。

最佳答案

docs 中所述, stripe 希望在创建费用时提及客户或来源。所以,你要么需要

  • 根据您收到的 token 在 strip 上创建一个客户(如果您将来也想向该客户收费),并在创建费用时提及该客户,
    customer = Stripe::Customer.create(source: params[:stripeToken])

    charge = Stripe::Charge.create({
    :amount => 400,
    :currency => "usd",
    :customer => customer.id,
    :description => "Charge for test@example.com"
    })
  • 或者,如果您不想创建客户,则直接提及收到的 token 作为来源,
    Stripe::Charge.create({
    :amount => 400,
    :currency => "usd",
    :source => params[:stripeToken],
    :description => "Charge for test@example.com"
    })
  • 关于ruby-on-rails - Rails - Stripe::InvalidRequestError(必须提供来源或客户。),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32980279/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com