【问题标题】:Proper Way To See If Square Checkout Process Completed查看 Square Checkout 过程是否完成的正确方法
【发布时间】:2020-01-04 01:58:32
【问题描述】:

我目前正在处理一个 C# Windows 窗体项目,该项目要求用户在进行任何处理之前付款。我正在使用 Square .Net SDK 进行支付处理,并成功地使用 Checkout API 生成的 Checkout URL 成功地通过沙盒环境获得了付款。我的问题是是否有一种简单的方法来获取付款过程是否已完成。现在,我只是用相同的顺序(具有相同的幂等键)轮询 API 并等待它返回一个错误,即该顺序不再有效。这是我当前代码的主干:

var bodyOrderLineItems = new List<CreateOrderRequestLineItem>();
long totalCost = 100;
var charge0 = new Money.Builder().Amount(totalCost).Currency("USD").Build();
bodyOrderLineItems.Add(new CreateOrderRequestLineItem.Builder("1").Name("Incredibly Valuable Product").BasePriceMoney(charge0).Build());
var order = new CreateOrderRequest.Builder()
                    .ReferenceId("reference_id")
                    .LineItems(bodyOrderLineItems)
                    .Build();
var body = new CreateCheckoutRequest.Builder("Test_iKey4", order)
                    .AskForShippingAddress(false)
                    .Build();
var checkoutApi = client.CheckoutApi;

try
{
     CreateCheckoutResponse result = checkoutApi.CreateCheckout(locationsString, body);
     System.Diagnostics.Process.Start(result.Checkout.CheckoutPageUrl);
     while (true)
     {

         System.Threading.Thread.Sleep(5000);
         //while payment hasn't gone through
         try
         {
             result = checkoutApi.CreateCheckout(locationsString, body);
         }
         catch (ApiException e)
         {
             MessageBox.Show(e.Errors[0].Detail);
             break;
         }
     }
     MessageBox.Show("Payment Must Have Gone Through");
}
catch (ApiException e) { MessageBox.Show(e.Errors[0].Detail); };

这是一种有效的方法吗?虽然这似乎确实有效,但我觉得我正在用请求淹没 api。我对 Square API 非常缺乏经验,因此我们将不胜感激。

【问题讨论】:

    标签: c# square


    【解决方案1】:

    通常在网站中使用 Checkout API,因为它包含一个参数redirect_url,因此当支付完成时,用户会被重定向回您的身边,并且它包含 url 参数,例如交易 ID。如果您没有网站,则可以注册webhooksPAYMENT_UPDATED webhook 将在付款处理完毕后发送,因此您无需进行轮询;只听 webhook。

    【讨论】:

      猜你喜欢
      • 2011-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多