我正在使用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"
}
}
我确实经历了the docs,但我想我还有点迷失
感谢您的帮助!
更新:这是我的API POST请求的返回。 Update2:我发现当我收取费用时正在创建一个客户。
更新3:Source属性设置为stripeToken参数,表示提供的付款方式。令牌由Checkout自动创建。 - 这似乎与我的问题有关 - 也许它没有正确发布?
答案 0 :(得分:1)
所以它确实是一个令牌请求 - 因为我使用测试卡进行测试,我想我必须通过测试令牌以确保测试卡能够正常工作。
我相信我正在使用的Rails Params(:source => params [:stripeToken] )对于生产而言是好的,但在检查给定的卡时却没有。如果有人像我一样遇到这个问题(当然这可能不是第一次被问到这个问题)
使用Stripe API时,您会看到测试卡号旁边有一个令牌选项卡 - 我认为这些是可选的,或者出于某种原因“为了别的东西”。他们不是。
您需要确保令牌与您计划使用的任何测试卡匹配(我认为)
My 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.
})
决定将评论留在那里 - 因为为什么不呢?
P.S您需要针对不同卡支付类型的不同令牌类型。如果你切换卡 - 切换令牌也是!!!! - 在测试卡号旁边标记了标记。