You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Square Checkout URL支付成功时的响应内容与格式,C# WPF WebView2问题

Square Checkout支付响应与WebView2问题解决方案

一、支付完成后的响应类型与格式

Square Checkout支付完成后有两种核心响应方式:

  • 前端跳转响应:支付成功/取消后,Square会自动跳转到创建Checkout时指定的redirect_url,并在URL查询参数中携带结果:
    • 支付成功:redirect_url?checkoutId=xxx&status=COMPLETED
    • 支付取消:redirect_url?checkoutId=xxx&status=CANCELED
  • Webhook异步通知:若配置了Webhook,Square会向你指定的后端端点发送POST请求,响应为JSON格式,包含完整的支付与订单详情,示例结构如下:
    {
      "merchant_id": "MERCHANT_ID",
      "type": "checkout.order.completed",
      "event_id": "EVENT_ID",
      "created_at": "2024-05-20T14:30:00Z",
      "data": {
        "object": {
          "order": {
            "id": "ORDER_ID",
            "status": "COMPLETED",
            "total_money": {
              "amount": 1500,
              "currency": "USD"
            }
          }
        }
      }
    }
    

二、C# WPF WebView2获取响应的问题排查

针对支付成功后无响应/事件触发的问题,按以下步骤排查:

  • 确认redirect_url配置:创建Checkout时指定的redirect_url需是WebView2可拦截的地址,比如自定义协议(如myapp://payment-result)或本地页面,避免使用外部公网地址导致WebView2无法触发本地导航事件。
  • 监听WebView2导航事件:注册NavigationStarting或NavigationCompleted事件,解析跳转URL的查询参数:
    // 初始化WebView2后注册事件
    webView.CoreWebView2.NavigationStarting += CoreWebView2_NavigationStarting;
    
    private void CoreWebView2_NavigationStarting(object sender, CoreWebView2NavigationStartingEventArgs e)
    {
        if (e.Uri.StartsWith("myapp://payment-result"))
        {
            var queryParams = System.Web.HttpUtility.ParseQueryString(new Uri(e.Uri).Query);
            var status = queryParams["status"];
            var checkoutId = queryParams["checkoutId"];
            // 在这里处理支付结果逻辑
            e.Cancel = true; // 阻止不必要的导航跳转
        }
    }
    
  • 检查WebView2权限设置:确保未禁用导航事件,或配置了错误的内容安全策略导致跳转被拦截。可通过CoreWebView2.Settings确认相关权限。
  • 验证Square跳转逻辑:先在普通浏览器中测试Checkout URL,确认支付后是否正常跳转到指定的redirect_url,排除Square端的配置问题。

内容的提问来源于stack exchange,提问作者Jaimin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 08:25:27