我想在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
答案 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付款如下:
如果是上述示例,var customer = customers.Create(...)
会创建Stripe客户并将其分配给变量customer
。 charges.Create(...)
向客户收取费用,subscriptions.Create(...)
会将客户订阅到您在条带信息中心中创建的计划。