我正在使用Laravel6和出纳10.7在我的平台上处理订阅。向Stripe一次性付款效果很好,从一个订阅切换到另一个订阅也很好,但当我尝试为没有存储卡的客户启动新订阅时,我遇到了一个错误
无法确定请求的URL:Stripe\Paymentmethod实例的ID无效:
我的付款单是这样的;
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-12 col-md-6 mt-5 mb-2">
@if (session('status'))
<div class="alert alert-success" role="alert">
{{ session('status') }}
</div>
@endif
@if ($errors->any())
<div class="alert alert-danger">
<strong>Whoops!</strong> There was a problem.
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="h2 text-center">
{{ __('Please enter your card details') }}
</div>
<div class="card">
<div class="card-body">
<form method="post" action="{{ route('startSubscription') }}" id="payment-form">
@csrf
<div class="group">
<label class="stripe-label">
<span class="mr-1 p-2">{{ __('Cardholder Name') }}</span>
<input id="card-holder-name" class="field" placeholder="Jordan Jones" />
</label>
</div>
<!-- Stripe Elements Placeholder -->
<div class="group">
<label class="stripe-label">
<span class="mr-1 p-2">{{ __('Card') }}</span>
<div id="card-element" class="field p-3"></div>
</label>
</div>
<!-- Used to display form errors. -->
<div id="card-errors" role="alert"></div>
<button id="card-button" class="btn btn-lg btn-block btn-success" data-secret="{{ $intent->client_secret }}">
<i class="fas fa-credit-card mr-1"></i>{{ __('Add Payment Method') }}
</button>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script>
const stripe = Stripe('{{ env("STRIPE_KEY") }}');
const elements = stripe.elements();
const cardElement = elements.create('card', {hidePostalCode: true});
cardElement.mount('#card-element');
const cardHolderName = document.getElementById('card-holder-name');
const cardButton = document.getElementById('card-button');
const clientSecret = cardButton.dataset.secret;
cardButton.addEventListener('click', async (e) => {
const { setupIntent, error } = await stripe.confirmCardSetup(
clientSecret, {
payment_method: {
card: cardElement,
billing_details: { name: cardHolderName.value }
}
}
);
if (error) {
var errorElement = document.getElementById('card-errors');
errorElement.textContent = error.message;
} else {
// Submit the form with the token ID.
function stripePaymentHandler(setupIntent) {
// Insert the token ID into the form so it gets submitted to the server
var form = document.getElementById('payment-form');
var hiddenInput = document.createElement('input');
hiddenInput.setAttribute('type', 'hidden');
hiddenInput.setAttribute('name', 'payment_method');
hiddenInput.setAttribute('value', setupIntent.payment_method);
form.appendChild(hiddenInput);
// Submit the form
form.submit();
}
}
});
</script>
@endsection
我的控制器是这样的;
public function subscriptionPayment(Request $request) {
$user = Auth::user();
$paymentMethod = $request->payment_method;
try {
if ($user->hasPaymentMethod()) {
$user->updateDefaultPaymentMethod($paymentMethod);
} else {
$user->addPaymentMethod($paymentMethod);
}
$newSubscription = $user->newSubscription('User', 'plan_HGvJkewD0eaY6G')->trialDays(60)->create($paymentMethod, ['email' => $user->email]);
} catch ( IncompletePayment $exception ){
return redirect()->route('payment',
[$exception->payment->id, 'redirect' => route('home')]
);
}
return redirect()->route('home')
->with('status', 'Your payment has been processed and your subscription is now active.');
}
Stripe事件日志显示了这一点;
{“object”:{“id”:“seti*******”,“object”:“setup\u intent”,“application”:null,
“取消原因”:null,“客户秘密”:“seti**********”,“已创建”:1591367952,“客户”:null,“说明”:null,“上次设置错误”:null,“现场模式”:false,“授权”:null,“元数据”:{},“下一步行动”:null,“代表”:null,“付款方法”:null,“付款方法选项”:“{”卡“{”请求三方安全”:“自动”}},“付款方式类型”:[“卡”],“单一使用授权”:空,“状态”:“需要付款方式”,“使用方式”:“关闭会话”}
有人能帮我解决我做错的事情吗,我就是解决不了。
创建一个条纹客户非常容易,将一张卡与该客户关联起来,然后随时向他们收费。然而,使用Laravel出纳之后,在任何时候订阅用户的计划都不那么容易。 当用户在“我的设置”中添加卡时,会生成卡令牌。我已尝试在此时存储令牌,并在用户希望更新其订阅时使用它,但出现错误:
我有麻烦使用laravel出纳与条纹新产品和计划集成。所以我创建了一个产品,在这个产品中我创建了一个计划。但是当我提交请求时,我得到一个错误检查了我的数据库,用户表包含卡信息,订阅表是空的。如何将Laravel出纳与条纹新系统产品集成 错误: 这是我的密码
我对laravel是新手,目前正在使用laravel 5.8。我的订阅计划将在我的laravel项目中实施。我读过关于如何实现订阅的文章,遇到了我试图实现的laravel收银员。但是它给了我一个错误,我不知道这些错误在哪里,因为我已经根据文档实现了代码。有谁能给我推荐一个在我的项目中如何使用laravel收银员的正确工作示例吗。 谢谢 尝试实现laravel出纳 Stripe\Error\Inva
我正在开发一个涉及订阅付款的Laravel应用程序。现在我正在努力用令牌订阅用户,但使用现有客户。这就是场景。在我的应用中,用户可以更新他们的支付/账单信息(基本上是卡)。当他们更新支付信息时,他们只是添加了卡信息。然后以后,用户可以付款或订阅他们想要的任何东西。 第一个用户将添加他们的付款方式或卡信息。所以我创建了这样的客户。 因此,上述方法将为用户创建条带客户以及卡。然后明天,用户可能想要订阅
我正在尝试订阅一个经过身份验证的用户与Laravel出纳的计划。对条带仪表板的post请求被标记为“200成功”。 但是,Laravel将抛出此异常:Laravel出纳:Stripe\exception\InvalidRequestException无此类客户:cus_H0zcimyzC93Bay 我不完全确定这意味着什么。我试图订阅的用户具有以下条带id:cus_H0zcimyzC93Bay。那
嗨,我不能收到确认订阅请求从亚马逊,尝试了一切。我的endpointurl是:。我尝试了以下代码片段来接收响应:1)-> 2)-> 请帮助我如何接收来自amazon的响应,也请指出我是否在代码中做错了什么或者我遗漏了任何一步。多谢了。