带Stripe和ASP.NET WebForm的示例结帐

时间:2019-04-10 10:18:03

标签: c# asp.net webforms stripe-payments

我正在尝试使用StripeASP.NET WebForm进行测试付款。我可以在测试帐户中获得答复,但还想做些其他的事情。我知道,它已经做得比较早了,但是还不是第一次。我已经完成了链接的帮助-Stripe Payment

我的测试帐户中的API响应成功。这就是我使用本教程所做的事情:

Default.aspx:

<form action="Charge.aspx" method="POST"> //Confused here a bit
  <script>
      src="https://checkout.stripe.com/checkout.js" class="stripe-button"
      data-key="<%= stripePublishableKey %>"
      data-amount="500"
      data-name="Stripe.com"
      data-description="Sample Charge"
      data-locale="auto"
      data-zip-code="true">
  </script>
</form>

Charge.aspx:

protected void Page_Load(object sender, EventArgs e)
{
    if (Request.Form["stripeToken"] != null)
    {
        var customers = new CustomerService();
        var charges = new ChargeService();

        var customer = customers.Create(new CustomerCreateOptions
        {
            Email = Request.Form["stripeEmail"],
            SourceToken = Request.Form["stripeToken"]
        });

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

        Console.WriteLine(charge);
    }
}

这是答复,我进入我的帐户- 200 OK POST / v1 /令牌。我还尝试使用Stripe生成的令牌将购买或订单详细信息存储在我的项目数据库中。因此,请尝试以下在我的测试帐户中创建订单的内容:

StripeConfiguration.SetApiKey("##########");

var options = new OrderCreateOptions
{
   Currency = "usd",
   Email = "jenny.rosen@example.com",
   Items = new List<OrderItemOptions> {
                new OrderItemOptions {
                Type = "sku",
                Parent = "sku_EqMkslKy9JiXAc",
                Quantity = 2,
         },
    },

    Shipping = new ShippingOptions
    {
        Name = "Jenny Rosen",
        Address = new AddressOptions
        {
           Line1 = "1234 Main Street",
           City = "San Francisco",
           State = "CA",
           PostalCode = "94111",
           Country = "US",
        },
    },
 };

var service = new OrderService();
Order order = service.Create(options);

这会在测试帐户中创建一个订单,但带有一个ASP.NET项目中的按钮,因此我无法输入卡号或其他信息以供Stripe进行验证。我想知道我是否可以使用ASP.NET WebForm进行所有相关的详细信息。

1 个答案:

答案 0 :(得分:1)

因此,当前您有一个付款表格,用于创建一个付款令牌(代表卡的详细信息)。将令牌发送到后端端点

  1. 创建客户并将卡的详细信息保存给他们。
  2. 向客户保存的详细信息收取一次$ 5的费用。

您还分别具有在Stripe上创建未结订单的代码,但仅此而已。

您要在此处组合代码-而不是执行上面的步骤2(创建一次性费用),而是要创建订单,然后call the pay endpoint并向刚刚创建的客户收费。

var options = new OrderPayOptions
{
  CustomerId = customer.Id,
};
var order = service.Pay(order.Id, options);