Stripe Payment .net mvc中的订阅

时间:2018-01-10 06:44:55

标签: asp.net-mvc

enter image description here我想在Stripe中使用订阅,根据条带信息中心中创建的计划启用定期付款工具。从仪表板我获得计划ID如何使用计划ID

来标记客户
<form action="/Stripe/Charge" method="POST">
    <article>
        <label>Amount: $5.00<br/>
               Buy   </label>
    </article>
    <script src="//checkout.stripe.com/v2/checkout.js"
            class="stripe-button"


            data-key="pk_test_...."
            data-locale="auto"
            data-description="Sample Charge"
            data-amount="500">
    </script>

    <article>
        <label>Amount: $29.00 <br/>
            Pro Subscription 
               </label>
    </article>
    <script
        src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="pk_test_..."

        data-description="Pro Subscription ($29 per month)"
        data-panel-label="Subscribe"
        data-label="Subscribe"
        data-amount="2900">
    </script>


</form>
我正走在正确的道路上吗?我想同时订阅和单一付款页面 我怀疑是根据用户选择的计划标记planId

1 个答案:

答案 0 :(得分:6)

您是否关注了Stripe Docs中的ASP.NET MVC tutorial?如果没有,它会帮助很多。在阅读我的其余答案之前先阅读一下。

Step 2中,您可以创建一个向客户收费的控制器。它位于您想要subscribe the customer to your plan的同一个区块中。它应该看起来像这样:

public IActionResult Charge(string  stripeEmail, string stripeToken)
{
    var customers = new StripeCustomerService();
    var charges = new StripeChargeService();
    var subscriptions = new StripeSubscriptionService();

    var customer = customers.Create(new StripeCustomerCreateOptions {
      Email = stripeEmail,
      SourceToken = stripeToken
    });

    var charge = charges.Create(new StripeChargeCreateOptions {
      Amount = 500,
      Description = "Sample Charge",
      Currency = "usd",
      CustomerId = customer.Id
    });

    var subscription = subscriptions.Create(customer.id, new StripeSubscriptionCreateOptions() {
      PlanId = "your-plan-here"
    };

    return View();
}

在不更改教程中的任何代码的情况下,这将为客户订阅计划your-plan-here,并向他们收取5美元的费用。这是因为所有逻辑都在后端处理,条带检出中的data-amount仅用于向用户显示他们将支付的金额。

就收费和订阅而言,我个人将data-amount设置为费用和订阅的第一个月的总和,或者我只使用custom form。但是由您来决定您的客户会更喜欢什么。

Stripe是如何工作的?

典型的Stripe付款如下:

  1. 用户将其卡片详细信息输入条带表单
  2. 提交表单后,Stripe会创建一个发送到您服务器的令牌,以及其他一些概述here
  3. 当服务器收到令牌时,服务器必须使用令牌和电子邮件来创建“条带客户” 令牌“SourceToken”或“source”成为客户付款方式
  4. 然后,服务器可以通过创建“费用”来向客户帐户收费,通过创建“订阅”以及许多其他内容来订阅客户到计划。
  5. 如果是上述示例,var customer = customers.Create(...)会创建Stripe客户并将其分配给变量customercharges.Create(...)向客户收取费用,subscriptions.Create(...)会将客户订阅到您在条带信息中心中创建的计划。