php - 无效请求: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!',
];
}
错误
完整的错误是:
无效的请求。提示:检查您的请求参数和 URL ( http://en.wikipedia.org/wiki/percent-encoding ) 的编码。如需帮助,请发送电子邮件至 support@stripe.com。
- 我已经与条带支持人员谈过,他们说他们认为错误在我这边,在条带端一切似乎都很好。
- 我检查了卡的详细信息和客户详细信息是否正确(这就是创建令牌的原因)。
- 我已经搜索了这个错误,但似乎没有任何结果,还有其他一些类似但没有答案的问题。
- 我已经卸载/重新安装了 laravel-cashier 包,但没有成功。
解决方案
奇怪的是我是如何设法解决这个问题的。似乎传递整个条带令牌不起作用,而我只需要传递令牌 ID。
简单地改变
$user->newSubscription('main', $plan)->create($stripeToken);
对此
$user->newSubscription('main', $plan)->create($stripeToken->id);
解决了这个错误
无效的请求。提示:检查您的请求参数和 URL ( http://en.wikipedia.org/wiki/percent-encoding ) 的编码。如需帮助,请发送电子邮件至 support@stripe.com。
我确定这两个文档中都没有说明这是解决方案吗?或者也许我在某个地方忽略了这个......但这已经为我解决了。
推荐阅读
- java - 卡夫卡生产者禁用
- c++ - 在 OpenGL 2D 中为敌人制作生成器
- .net - 修改流单元 dotnet SDK - Azure 流分析
- android - 即使在 vivo 和 oppo 设备中授予自动启动权限后,AccessibilityService 也会被禁用
- html - 具有链接到相同索引的模式
- python - Python中的RGB数据到拜耳格式的转换
- javascript - 观众不改变/使用不同的模拟
- python - 如何使 tkinter Treeview 行条目图标显示为默认值?
- python - 如何对多元线性回归进行假设检验?(每个变量的 p 值)
- jenkins - Jenkins 中的图像触发 K8 部署