我有以下代码允许我从CLI进行条带支付。
curl -u stripe-secret-key-here: -d amount=100 -d currency=gbp -d
'card[number]=4242424242424242' -d 'card[exp_month]=5' -d 'card[exp_year]=2015'
https://api.stripe.com/v1/charges
但是,如果我尝试使用URL /星号拨号计划中的以下内容,则会收到以下给定的错误。
https://stripe-secret-key-here:@api.stripe.com/v1/charges?amount=100&
currency=gbp&card[number]=4242424242424242&card[exp_month]=5&card[exp_year]=2015
错误:
{
"error": {
"type": "invalid_request_error",
"message": "Received unknown parameter: card",
"param": "card"
}
}
会感激一点帮助...... 感谢。
答案 0 :(得分:2)
尽管这是一个老问题,但在搜索stripe-payments
时它仍然显示为最相关的问题之一,所以我认为我会提供答案。
使用URL表单时请求失败的原因是因为这是一个GET请求。
Stripe API documentation明确指出charge creation requests是POST请求。
将curl
与-d
选项一起使用时,请求将作为POST发送。来自cURL manual:
POST(HTTP)
使用curl发布数据很容易。这是使用
-d <data>
完成的 选项。帖子数据必须是urlencoded。
所以你得到&#34;未知参数的原因是:卡&#34;错误是因为https://api.stripe.com/v1/charges
端点只需要两种不同类型的GET请求:charge retrieval和list charges,两者都不期望card
参数。
有关GET与POST的更多信息:
答案 1 :(得分:0)
您需要使用试图传递的card
参数生成条带卡令牌,而不是传递卡片参数。
示例:
curl https://api.stripe.com/v1/charges \
-u YOUR_SECRET_KEY: \
-d amount=2000 \
-d currency=usd \
-d source=tok_visa \
-d description="Charge for james.martin@example.com"