【问题标题】:Sample Checkout With Stripe and ASP.NET WebForm使用 Stripe 和 ASP.NET WebForm 的示例结帐
【发布时间】:2019-08-31 18:24:47
【问题描述】:

我正在尝试使用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/tokens。我还尝试使用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 结帐并提供所有相关详细信息。

【问题讨论】:

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


【解决方案1】:

因此,目前您有一个创建支付令牌(代表卡详细信息)的支付表单。这会将令牌发送到后端端点

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

您还单独拥有在 Stripe 上创建开放订单的代码,但仅此而已。

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

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

【讨论】:

  • 感谢@karllekko 的回复。但是我可以使用自定义按钮而不是Stripe 按钮来插入上述相关数据,或者您是否可以提供任何示例?我的想法是在结帐完成时,获取令牌并插入令牌或来自Stripe 的任何通知,并在我的测试帐户中创建订单,并在我的末尾添加数据。
  • Checkout 有一个custom integration,您可以使用自己的按钮触发卡详细信息弹出窗口,然后将数据提交到您的服务器,是的。不过,它需要编写更多的 Javascript。
猜你喜欢
  • 2021-06-24
  • 2019-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-30
  • 2015-01-29
  • 2017-05-20
  • 1970-01-01
相关资源
最近更新 更多