Jas*_*der 6 ruby-on-rails stripe-payments
我正在研究 Stripe API 并构建自定义结帐功能 - 我的错误特别提示我必须提供来源或客户。这是我创建费用的控制器:
我以为我使用以下代码成功创建了一个源和/或客户(我还在我的条带仪表板上包含了帖子日志)
Stripe::Charge.create(
:amount => @amount,
:currency => 'usd',
:source => params[:stripeToken],
)
Stripe::Customer.create(
:email => params[:stripeEmail],
:source => params[:stripeToken]
)
"error": {
"code": "parameter_missing",
"doc_url": "https://stripe.com/docs/error-codes/parameter-missing",
"message": "Must provide source or customer.",
"type": "invalid_request_error"
}
}
Run Code Online (Sandbox Code Playgroud)
我确实阅读了文档,但我想我还是有点迷茫
感谢您的任何帮助!
更新:这是我的 API POST 请求的返回。
更新 2:当我发送费用时,我看到正在创建一个客户。

更新 3:Source 属性设置为 stripeToken 参数,表示提供的支付方式。令牌由 Checkout 自动创建。- 这似乎可能与我的问题有关 - 也许它没有正确发布?
所以它确实是一个令牌请求 - 因为我使用测试卡进行测试,所以我想我必须通过测试令牌才能确保测试卡能够工作。
我相信我使用的 Rails 参数 (: source => params[:stripeToken] ) 适合生产,但在检查给定卡时则不然。万一有人像我一样遇到这个问题(当然这可能不是第一次被问到)
使用 Stripe API 时,您会看到测试卡号码旁边有一个令牌选项卡 - 我认为这些是可选的或出于某种原因“用于其他用途”。他们不是。
您需要确保令牌与您计划使用的任何测试卡相匹配(我认为)
我的 Stripe 控制器现在看起来像这样
Stripe::Charge.create({
:amount => @amount,
:currency => 'usd',
:source => 'tok_visa', #params[:stripeToken] might be for in production I think this is for testing.,
:description => 'Your Donation to Victoria University',
:statement_descriptor => 'Victoria University'
# it seems test tokens must be set as string.
})
Run Code Online (Sandbox Code Playgroud)
决定在那里留下我的评论 - 因为为什么不呢?
PS 对于不同的卡支付类型,您需要不同的令牌类型。如果你换卡 - 也换令牌!!!- 标记位于测试卡号码旁边。
| 归档时间: |
|
| 查看次数: |
2125 次 |
| 最近记录: |