无效请求:Stripe 7.0 + Laravel 5.7
Invalid request: Stripe 7.0 + Laravel 5.7
描述
尝试使用 Laravel + API 创建条带订阅时出现错误。
在创建订阅之前,您必须通过请求获得令牌,我已经成功创建了这个令牌,我现在正在使用 API 中的 "createSubscription()" 方法(在我的代码中引用), 但这是发生错误的地方。
代码
public function create()
{
$user = Auth::user();
$plan = 'prod_**********';
// Do some checks
if ($user->subscribed('main')){
return [
'status' => 'failed',
'message' => 'You are already subscribed!',
];
}
// Set the stripe Key
Stripe::setApiKey(env('STRIPE_SECRET'));
// Create the stripe token
try {
$stripeToken = Token::create([
'card' => [
'number' => str_replace(' ', '', Input::get('number')),
'exp_month' => Input::get('exp_month'),
'exp_year' => Input::get('exp_year'),
'cvc' => Input::get('cvc')
]
]);
}
catch (\Stripe\Error\InvalidRequest $e)
{
return [
'status' => 'failed',
'message' => $e->getMessage(),
];
}
try{
// This is the line thats failing
$user->newSubscription('main', $plan)->create($stripeToken);
} catch (\Stripe\Error\InvalidRequest $e) {
dd($e->getMessage());
}
return [
'status' => 'success',
'message' => 'Subscription was successful!',
];
}
错误
完整的错误是:
Invalid request. Hint: check the encoding for your request parameters
and URL (http://en.wikipedia.org/wiki/percent-encoding). For
assistance, email support@stripe.com.
- 我已经和 stripe 支持人员谈过,他们说他们认为错误在我这边,在 stripe 端似乎一切都很好。
- 我已经检查了卡的详细信息和客户详细信息是否正确(这就是创建令牌的原因)。
- 我已经搜索过这个错误,但似乎没有找到任何答案,还有其他一些类似的问题,但没有答案。
- 我已经卸载/重新安装了 laravel-收银包,但没有成功。
奇怪的是我是如何设法解决这个问题的。传递整个条带令牌似乎不起作用,而我只需要传递令牌 ID。
简单地改变
$user->newSubscription('main', $plan)->create($stripeToken);
至此
$user->newSubscription('main', $plan)->create($stripeToken->id);
解决了这个错误
Invalid request. Hint: check the encoding for your request parameters
and URL (http://en.wikipedia.org/wiki/percent-encoding). For
assistance, email support@stripe.com.
我确定这两个文档中都没有说明这是解决方案?或者也许我在某个地方忽略了这个......但这已经为我解决了。
描述
尝试使用 Laravel + API 创建条带订阅时出现错误。
在创建订阅之前,您必须通过请求获得令牌,我已经成功创建了这个令牌,我现在正在使用 API 中的 "createSubscription()" 方法(在我的代码中引用), 但这是发生错误的地方。
代码
public function create()
{
$user = Auth::user();
$plan = 'prod_**********';
// Do some checks
if ($user->subscribed('main')){
return [
'status' => 'failed',
'message' => 'You are already subscribed!',
];
}
// Set the stripe Key
Stripe::setApiKey(env('STRIPE_SECRET'));
// Create the stripe token
try {
$stripeToken = Token::create([
'card' => [
'number' => str_replace(' ', '', Input::get('number')),
'exp_month' => Input::get('exp_month'),
'exp_year' => Input::get('exp_year'),
'cvc' => Input::get('cvc')
]
]);
}
catch (\Stripe\Error\InvalidRequest $e)
{
return [
'status' => 'failed',
'message' => $e->getMessage(),
];
}
try{
// This is the line thats failing
$user->newSubscription('main', $plan)->create($stripeToken);
} catch (\Stripe\Error\InvalidRequest $e) {
dd($e->getMessage());
}
return [
'status' => 'success',
'message' => 'Subscription was successful!',
];
}
错误
完整的错误是:
Invalid request. Hint: check the encoding for your request parameters and URL (http://en.wikipedia.org/wiki/percent-encoding). For assistance, email support@stripe.com.
- 我已经和 stripe 支持人员谈过,他们说他们认为错误在我这边,在 stripe 端似乎一切都很好。
- 我已经检查了卡的详细信息和客户详细信息是否正确(这就是创建令牌的原因)。
- 我已经搜索过这个错误,但似乎没有找到任何答案,还有其他一些类似的问题,但没有答案。
- 我已经卸载/重新安装了 laravel-收银包,但没有成功。
奇怪的是我是如何设法解决这个问题的。传递整个条带令牌似乎不起作用,而我只需要传递令牌 ID。
简单地改变
$user->newSubscription('main', $plan)->create($stripeToken);
至此
$user->newSubscription('main', $plan)->create($stripeToken->id);
解决了这个错误
Invalid request. Hint: check the encoding for your request parameters and URL (http://en.wikipedia.org/wiki/percent-encoding). For assistance, email support@stripe.com.
我确定这两个文档中都没有说明这是解决方案?或者也许我在某个地方忽略了这个......但这已经为我解决了。