条纹创建帐户并收取卡

Posted

技术标签:

【中文标题】条纹创建帐户并收取卡【英文标题】:stripe create account and charge a card 【发布时间】:2018-12-27 17:33:35 【问题描述】:

尝试与 Stripe 合作创建帐户、从卡中扣款并注册 15-30 天后开始的订阅。

我想做的是:

1) 预先收集使用信息(电子邮件、地址、名字/姓氏、卡信息等),这些信息将在条带上和我的数据库中添加一个客户。

2) 进行初始费用(不是订阅费用),如果通过将在 stipe 和我的数据库上创建帐户。

3) 确保我的数据库中有 Stipe 的客户信息,以便日后向 cade 收费。还没有决定我是要按月收费还是让 Stripe 来做。

4) 如果订阅付款结束(由于信用卡月费不良或其他原因),请限制用户在登录时看到的内容。这就是为什么我想运行一个 cron,如果它被标记为需要付款,请执行有限的视图。

提前感谢您的帮助和建议!

【问题讨论】:

聘请开发人员,所以不是代码编写服务。请拨打tour。或者,您可以向我们展示您现有的代码并具体说明您面临的问题,我们可以帮助您解决问题。 我们会为您设计、开发和实施吗?你的代码在哪里? 不,获得建议,第一次使用 Stipe。我把这些步骤作为参考来展示我的计划。只是想更好地掌握条纹...... 【参考方案1】:

显然我得罪了几个人。我也忘了提到我正在尝试使用 AJAX 来做这件事,这是我试图解决的主要问题。

我实际上找到了一些相关链接,最后,这似乎将我指向了我正在寻找的正确方向。这主要是我想要的。

以下是迄今为止对我有帮助的链接。希望他们帮助任何寻找相同事物的人。

https://youtu.be/EildM6OMcoQ

不知道为什么这个最终出现在我的搜索中?猜猜我的搜索没有正确分阶段...

Make a Stripe payment with Jquery AJAX? (javascript ONLY)

还有一两个链接,但我必须找到它们。找到后我会添加它们....

这是我的测试脚本,主要用于检查令牌传递... 需要了解如何使其与 STRIPE 一起使用 V3 API...

Form.php

   <?php session_start(); ?>
   <!DOCTYPE html>
   <html lang="en">
   <head>
   <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
   <title>Stripe Getting Started Form</title>

   <!-- The required Stripe lib -->
   <script type="text/javascript" src="https://js.stripe.com/v2/"></script>

   <!-- jQuery is used only for this example; it isn't required to use Stripe -->
   <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

   <script type="text/javascript">
   // This identifies your website in the createToken call below
   Stripe.setPublishableKey('__YOUR__PUBLIC__HERE__);

   var stripeResponseHandler = function(status, response) 
   var $form = $('#payment-form');

   if (response.error) 
   // Show the errors on the form
   $form.find('.payment-errors').text(response.error.message);
   $form.find('button').prop('disabled', false);
    else 
   // token contains id, last4, and card type
   var token = response.id;
   // Insert the token into the form so it gets submitted to the server
   $form.append($('<input type="hidden" name="stripeToken" />').val(token));
   // and re-submit
   //$form.get(0).submit();

   // Serialize the form
   var data=$('#payment-form').serialize(); 

   // Send form to server with POST method
   $(function() 
       $.ajax(
           type: "POST",
           url: "./testphp.php",
           data: data,
           success: function(returndata)
               $form.find('button').prop('disabled', false);
               $('.payment-errors').text(returndata);
           
       );
   );

   // Prevent page from refreshing
   return false;

   
   ;

   // ONCLICK RESPONSE 
   jQuery(function($) 
   $('#thebutton').on('click', function(e) 
       var $form = $('#payment-form');

       // Disable the submit button to prevent repeated clicks
       $form.find('button').prop('disabled', true);

       Stripe.card.createToken($form, stripeResponseHandler);

       // Prevent the form from submitting with the default action
       return false;
       );
   );
   </script>

   </head>
   <body>

   <?php 
   //$_SESSION['token'] = "12345";
   echo $_SESSION['token']; // will only show if page is reloaded
                            // will not be the same as new token
                            // used to check against after submit
   ?>

   <h1>Charge $10 with Stripe</h1>

   <form action="" method="POST" id="payment-form">
   <span class="payment-errors"></span>

   <div class="form-row">
   <label>
   <span>Card Number</span>

   <input type="text" size="20" data-stripe="number" value="424242424242424"/>

   </label>
   </div>

   <div class="form-row">
   <label>
   <span>CVC</span>
   <input type="text" size="4" data-stripe="cvc" value="424" />
   </label>
   </div>

   <div class="form-row">
   <label>
   <span>Expiration (MM/YYYY)</span>
   <input type="text" size="2" data-stripe="exp-month" value="01"/>
   </label>
   <span> / </span>
   <input type="text" size="4" data-stripe="exp-year" value="2019"/>
   </div>

   <button type="submit" id="thebutton">Submit Payment</button>
   </form>
   </body>
   </html>

testphp.php

<?php
    // Start the session
    session_start();

    // Store the received token string in a session variable
    if($_POST)
        $_SESSION['token']=$_POST['stripeToken'];
    
    echo $_POST['stripeToken'];
    echo "\n";
    print_r($_SESSION);
?>

我还有很多其他事情需要解决,但这主要是我寻求建议的方向......

【讨论】:

以上是关于条纹创建帐户并收取卡的主要内容,如果未能解决你的问题,请参考以下文章

按用户/按数量重复计费。啥是条纹的替代品?

条纹:使用优惠券创建费用

用条纹测试谷歌支付

条纹设置意图

条纹复制客户

不同人的多次条纹支付尝试。他们应该共享相同的“clientSecret”吗?