Пример оформления заказа с помощью Stripe и ASP.NET WebForm - PullRequest
1 голос
/ 10 апреля 2019

Я пытаюсь сделать пробный платеж, используя Stripe с ASP.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 со всеми соответствующими деталями.

1 Ответ

1 голос
/ 10 апреля 2019

Итак, в настоящее время у вас есть форма оплаты, которая создает токен оплаты (представляющий данные карты). Это отправляет токен на конечную точку бэкэнда, которая

  1. создает клиента и сохраняет для него данные карты.
  2. взимает плату за сохраненные данные клиента единовременно в размере 5 долларов США.

У вас также есть отдельный код, который создает открытый ордер на Stripe, но больше ничего.

Здесь вы хотите объединить код - вместо выполнения шага 2, описанного выше, где вы создаете разовый платеж, вы хотите создать Заказ, а затем позвоните в конечную точку оплаты и начислите клиент, которого вы только что создали.

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