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

带无效卡的条带订阅成功

乐正晟
2023-03-14

我正在用作曲家实例化条纹,并试图在测试模式下使用卡号4000 0000 0000 0341订阅客户订阅计划。留档表示这将被接受,但在用于创建订阅时抛出一个错误。我的问题是,为什么创建订阅步骤总是以这个卡号返回成功?

我的收费代码是

<form action="subscribe.php" method="post">
                            <input type="hidden" name="customer" value="<? echo $stripeID ?>">
                            <input type="hidden" name="plan" value="<? echo $thisPlan['id'] ?>">
                            <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
                                    data-key="<?php echo $stripe['publishable_key']; ?>"
                                    data-name="www.example.com"
                                    data-description="<? echo $thisPlan['name'] ?>"
                                    data-amount="<? echo $thisPlan['amount'] ?>"
                                    data-locale="auto"
                                    data-panel-label="Subscribe Now"
                                    data-label="Subscribe"
                                    data-allow-remember-me="false">
                          </script>
                        </form>

还有我的订阅。php是

    try {
    $result = \Stripe\Subscription::create(array(
      "customer" => $_POST['customer'],
      "plan" => $_POST['plan']
    ));
  echo "Subscription successful";
}
catch (Stripe\Error\Base $e) {
  // Code to do something with the $e exception object when an error occurs
  echo($e->getMessage());
} catch (Exception $e) {
  // Catch any other non-Stripe exceptions
}

共有1个答案

周翰池
2023-03-14

问题是为什么测试卡号没有生成错误响应。答案在评论中:客户已经分配了一张默认卡,stripe始终使用默认卡,即使在javascript表单中提供了一张新卡。我的解决方案是使用令牌中返回的新卡号更新客户,然后应用订阅:

try {  
    $cu = \Stripe\Customer::retrieve($_POST['customer']);
    $cu->source = $_POST['stripeToken']; // obtained with Stripe.js
    $cu->save();
}

try {
$result = \Stripe\Subscription::create(array(
  "customer" => $_POST['customer'],
  "plan" => $_POST['plan']
));

回显“\n订阅成功”;}

 类似资料:
  • 我登录到luis.ai,它显示下面的错误信息。我的订阅上有所有者角色或参与者角色。如何修复错误?谢谢。 401:由于订阅密钥无效或API终结点错误,访问被拒绝。确保为活动订阅提供有效密钥,并为您的资源使用正确的区域APIendpoint。

  • 我使用的是Laravel 5.2和出纳。我要创建订阅 我得到了这个错误 RequestOptions中的Api。php第78行:条带API方法调用的第二个参数是可选的每请求apiKey,它必须是字符串,或者每请求选项,它必须是数组。(提示:您可以通过“Stripe::setApiKey()”)设置全局apiKey)

  • 我确信我在这里遗漏了一些显而易见的东西,但我不知道如何针对客户检查现有卡。 我在laravel应用程序中使用stripe connect api代表他人管理付款,基本流程如下: < Li > stripe < code >令牌通过< code>stripe.js创建,并与支付表单一起提交 < li >如果客户存在于本地数据库中,我获取他们的< code>stripe_id,否则使用令牌作为源/卡创

  • 我正在使用Laravel6和出纳10.7在我的平台上处理订阅。向Stripe一次性付款效果很好,从一个订阅切换到另一个订阅也很好,但当我尝试为没有存储卡的客户启动新订阅时,我遇到了一个错误 无法确定请求的URL:Stripe\Paymentmethod实例的ID无效: 我的付款单是这样的; 我的控制器是这样的; Stripe事件日志显示了这一点; {“object”:{“id”:“seti****

  • 我正试着提交一份脱衣舞表演。没有ajax的php,但我遇到以下错误: 致命错误:未捕获的异常条纹\错误\InvalidRequest消息无效的源对象:必须是字典或非空字符串。 我相信这与令牌没有附加到输入有关。我尝试了几种不同的方法都没有成功。 最小标记 JavaScript 要价php 更新配置。php

  • 我目前正在尝试用服务器端stripe api创建收费。 但是我遇到了一个问题;我用两种方法来进行付款: > 用户可以使用条带元素付款 = 或者,如果用户已经在其帐户上添加了一些卡,他可以在列表中选择其中的一张 我想知道是否有办法生成一个带有卡id和客户id的令牌,以便使用这个令牌来创建收费,而不是使用卡id和客户id来对用户收费。 我已经试过了https://stripe.com/docs/api