当前位置: 首页 > 知识库问答 >
问题:

Laravel出纳-使用现有客户对象创建新订阅

郎增
2023-03-14

我正在使用Laravel收银台和Stripe来管理订阅。用户将在注册时提供他们的信用卡信息,但此时他们不会在特定计划中订阅。因此,我可以成功地使用Stripe Checkout创建Stripe客户对象,并将Stripe客户ID保存在数据库中。但是当用户注册计划时,我看不到一种方法可以使用Stripe客户ID将他们注册到他们想要的计划中。

当然,我可以再次询问他们的信用卡信息,并获得一个条纹令牌与Laravel出纳一起使用,但我想避免这种情况,因为该应用程序在他们注册时已经创建了一个条纹客户对象,我想简单地使用现有的客户反对向他们的信用卡收费,而不是再次询问他们的卡号。

为了说明我正在尝试做的事情,这里有一些来自Laravel文档的示例代码

$user->newSubscription('main', 'monthly')->create($creditCardToken);

但是我希望能够做的是这样的事情(注意对创建方法的更改:

$user->newSubscription('main', 'monthly')->create($user->stripe_id);

有什么建议吗?

共有2个答案

商泽宇
2023-03-14

你可以试试这个。

$user->setStripeKey(env("STRIPE_KEY"));

# card details
$card = [
'card_number' => 'xxxxxxxx',
'card_cvc' => 'xxx',
'exp_month' => 'xx',
'exp_year' => 'xxxx',
'name' => 'xxx',
];
# generate token
$token = $this->generateAccessToken($card);

private function generateAccessToken($card)
{

    $client = new \GuzzleHttp\Client();
    $url = 'https://api.stripe.com/v1/tokens';
    $pubKey = env("STRIPE_SECRET");
    $postBody = [
        'key' => $pubKey,
        'payment_user_agent' => 'stripe.js/Fbebcbe6',
        'card' => [
            'number' => $card['card_number'],
            'cvc' => $card['card_cvc'],
            'exp_month' => $card['exp_month'],
            'exp_year' => $card['exp_year'],
            'name' => $card['name']
        ]
    ];

    $response = $client->post($url, [
        'form_params' => $postBody
    ]);

    $response_obj = json_decode($response->getbody()->getContents());

    return $response_obj->id;
}
# main or primary
$subscription_obj = $user->newSubscription('subscription_name', 'stripe_plan_id')->create($token);
章侯林
2023-03-14

如果用户有条带ID,则不必提供令牌

$user->newSubscription('main', 'monthly')->create();

看看SubscriptionBuilder类。

 类似资料:
  • 创建一个条纹客户非常容易,将一张卡与该客户关联起来,然后随时向他们收费。然而,使用Laravel出纳之后,在任何时候订阅用户的计划都不那么容易。 当用户在“我的设置”中添加卡时,会生成卡令牌。我已尝试在此时存储令牌,并在用户希望更新其订阅时使用它,但出现错误:

  • 我正在开发一个涉及订阅付款的Laravel应用程序。现在我正在努力用令牌订阅用户,但使用现有客户。这就是场景。在我的应用中,用户可以更新他们的支付/账单信息(基本上是卡)。当他们更新支付信息时,他们只是添加了卡信息。然后以后,用户可以付款或订阅他们想要的任何东西。 第一个用户将添加他们的付款方式或卡信息。所以我创建了这样的客户。 因此,上述方法将为用户创建条带客户以及卡。然后明天,用户可能想要订阅

  • 我正试图与我的订阅建立另一种关系,第一种是用户,它是付费模式,工作正常,另一种是地点,这是用户拥有的地点。 我创建了一个迁移,该迁移添加了place\u id: 我找不到订阅的方法-

  • 我试图实现这里提到的,但得到错误: 我使用的是Laravel出纳: 使用此代码创建客户失败,因为它尝试在表中创建一个不需要的记录,因为我已经创建了一个用户: 如何将现有客户ID和电子邮件发送到Stripe?

  • 我对laravel是新手,目前正在使用laravel 5.8。我的订阅计划将在我的laravel项目中实施。我读过关于如何实现订阅的文章,遇到了我试图实现的laravel收银员。但是它给了我一个错误,我不知道这些错误在哪里,因为我已经根据文档实现了代码。有谁能给我推荐一个在我的项目中如何使用laravel收银员的正确工作示例吗。 谢谢 尝试实现laravel出纳 Stripe\Error\Inva

  • 问题内容: 嗨,我正在尝试创建一个程序来在用户为某个对象输入新信息时创建一个新对象。目前我有这个。 电脑超一流 桌面子类 笔记本电脑子类 因此,有一个班级和两个子班级,但我认为这并不重要。因此,如果我输入1,则应该为Desktop创建一个新对象,如果我输入2,则将为Laptop创建一个新对象。当我输入3时,它应该显示所有创建的对象。我不知道如何让他们工作,请帮助。 问题答案: 使用您提供的限制信息