Laravel 5 Laravel出纳订阅v10.5
我正在尝试实现与出纳的订阅。我使用的不是用户表,而是在.env中定义为OK的客户表Laravel 5 Laravel出纳订阅v10.5,laravel-5,stripe-payments,laravel-cashier,Laravel 5,Stripe Payments,Laravel Cashier,我正在尝试实现与出纳的订阅。我使用的不是用户表,而是在.env中定义为OK的客户表 CASHIER_MODEL=App\Customer 相应的其他字段将添加到customer表中 我首先希望得到一些关于客户的信息,以便他们填写一个简单的表格,其中包括他们的姓名、电子邮件、国家和密码。然后,我将customer->id保存为会话变量 $fs = App\Customer::find($id); $pl = App\Plan::find(3); $amount = $pl->cost *
CASHIER_MODEL=App\Customer
相应的其他字段将添加到customer表中
我首先希望得到一些关于客户的信息,以便他们填写一个简单的表格,其中包括他们的姓名、电子邮件、国家和密码。然后,我将customer->id保存为会话变量
$fs = App\Customer::find($id);
$pl = App\Plan::find(3);
$amount = $pl->cost * 100;
session(['subscriber' => $id]);
我有一个包含条带订阅引用和测试引用的计划表。我已经把这些放在条纹上了
记录完客户详细信息后,我将他们带到一个视图,在那里他们可以输入卡的详细信息。在将id传递给视图并设置会话变量时,会在此页面上找到客户
$fs = App\Customer::find($id);
$pl = App\Plan::find(3);
$amount = $pl->cost * 100;
session(['subscriber' => $id]);
计划id 3是我的测试计划,但当我开始工作时会被替换,所以我的表单是
<form action="/subscriptionPayment" method="POST">
@csrf
<script
src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="{{ env('STRIPE_KEY') }}"
data-amount="{{ $amount }}"
data-name="{{ $pl->name }}"
data-email="{{ $fs->email }}"
data-currency="gbp">
</script>
</form>
我没有删除返回的$intent
Stripe\SetupIntent {#500 ▼
+saveWithParent: false
#_opts: Stripe\Util\RequestOptions {#503 ▶}
#_originalValues: array:20 [▶]
#_values: array:20 [▶]
#_unsavedValues: Stripe\Util\Set {#490 ▶}
#_transientValues: Stripe\Util\Set {#506 ▶}
#_retrieveOptions: []
#_lastResponse: Stripe\ApiResponse {#502 ▶}
id: "seti_1FyFFyF7aDMrgjaujaPqH939"
object: "setup_intent"
application: null
cancellation_reason: null
client_secret: "seti_1FyFFyF7aDMrgjaujaPqH939_secret_GVFlyidVC9hiJVM3FDrXMoyxO0etcPL"
created: 1578392750
customer: null
description: null
last_setup_error: null
livemode: false
mandate: null
metadata: Stripe\StripeObject {#512 ▶}
next_action: null
on_behalf_of: null
payment_method: null
payment_method_options: Stripe\StripeObject {#508 ▶}
payment_method_types: array:1 [▶]
single_use_mandate: null
status: "requires_payment_method"
usage: "off_session"
}
订阅失败,原因是
No such PaymentMethod: cus_GVEuKhg2BUE7BB
这是数据库中记录的正确客户编号
非常感谢您的帮助。
$stripeToken=$cu->stripe\u id代码>-这不对,令牌是您从表单签出中获得的值,它应该作为stripeToken POST参数在$request中的某处;不是你要的客户ID。当前获取。我对传入请求进行了dd,得到了“stripeToken=>”tok_1fygbrf7admrgjaouf 69kPak”“stripeTokenType=>”card”,因此我将代码修改为“```$stripeToken=$request->stripeToken;paymentMethods=$cu->paymentMethods()$intent=$cu->createSetupIntent()$cu->newSubscription($pl->name,$pl->test_stripe_plan)->create($stripeToken);`现在我得到了:``没有这样的支付方式:tok_1fygbrf7admrgjaouf 69kPak```我认为你真的不能将setupintent与代币一起使用。您在这里也使用了旧的签出,它实际上不适用于像setupintent这样的新事物(您应该使用Elements PaymentMethod集成或新签出)。您可以通过至少从令牌创建PaymentMethod并使用该ID来实现这一点。我不知道您在Lavarel中是如何做到的,但它是(创建PaymentMethod并传递card.token=tok_xxx