条纹付款CURL问题

时间:2015-01-07 22:52:54

标签: curl stripe-payments

我有以下代码允许我从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"
}
}

会感激一点帮助...... 感谢。

2 个答案:

答案 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 retrievallist 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"