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

如何在C# .NET WPF应用中集成Square Reader实现卡支付?

WPF集成Square Reader刷卡支付方案指引

一、核心问题解答

可以从WPF应用向Square Reader发送支付请求,Square的Terminal API完全适配你的需求——它就是专门用于通过应用控制Square终端设备(包括Reader系列)完成线下刷卡/非接支付的官方API。

二、具体集成步骤

1. 前置准备

  • 确保你的Square开发者账号已开启Terminal API权限,绑定对应Square Reader设备(需完成设备激活,且设备与应用归属同一Square商户账号)
  • 通过NuGet安装Square官方.NET SDK(包名Square)
  • 确认WPF应用运行环境具备网络连接能力(需与Square Reader及Square服务端通信)

2. 核心集成流程

(1)初始化Square客户端

在WPF应用中初始化SDK客户端,区分沙箱/生产环境传入对应密钥:

var squareClient = new SquareClient.Builder()
    .AccessToken("YOUR_ACCESS_TOKEN")
    .Environment(Square.Environment.Sandbox) // 生产环境替换为Production
    .Build();

(2)创建并推送支付请求到Reader

通过Terminal API构建支付请求,指定金额、目标设备ID等参数,Square会自动将请求下发到绑定的Reader设备:

var requestBody = new CreateTerminalCheckoutRequest.Builder()
    .IdempotencyKey(Guid.NewGuid().ToString()) // 幂等键,避免重复请求
    .TerminalCheckout(new TerminalCheckout.Builder()
        .AmountMoney(new Money.Builder()
            .Amount(100) // 单位为最小货币单位,此处代表1美元
            .Currency("USD")
            .Build())
        .DeviceId("YOUR_READER_DEVICE_ID") // 从Square开发者后台或设备本地获取
        .Build())
    .Build();

var response = await squareClient.TerminalApi.CreateTerminalCheckoutAsync(requestBody);

(3)监听支付状态

支付请求发送后,可通过轮询(调试场景)或Webhook(生产环境推荐)监听状态变化,在WPF端更新UI:

// 轮询状态示例(生产环境建议用Webhook减少请求开销)
var retrieveRequest = new RetrieveTerminalCheckoutRequest.Builder()
    .TerminalCheckoutId(response.TerminalCheckout.Id)
    .Build();

TerminalCheckout checkoutStatus;
do
{
    await Task.Delay(2000);
    var statusResponse = await squareClient.TerminalApi.RetrieveTerminalCheckoutAsync(retrieveRequest);
    checkoutStatus = statusResponse.TerminalCheckout;
} while (checkoutStatus.Status is "PENDING" or "IN_PROGRESS");

// 根据状态处理业务逻辑
if (checkoutStatus.Status == "COMPLETED")
{
    // 支付成功:更新订单状态、提示用户等
}
else
{
    // 支付失败/取消:提示错误、允许重试等
}

3. WPF端交互优化

  • 发送支付请求前添加确认弹窗,避免误操作
  • 支付过程中显示加载动画,提示用户在Reader上完成刷卡/插卡/挥卡操作
  • 状态更新时通过WPF的Dispatcher切换到UI线程,避免跨线程UI更新异常

三、关键注意事项

  • 沙箱环境可使用Square提供的模拟设备或测试Reader调试,无需真实硬件
  • 生产环境需确保Reader设备与WPF应用处于同一网络(部分Reader支持Square云推送,无需同网)
  • 需处理设备离线、用户取消支付、金额验证失败等异常场景,添加对应的错误提示与重试逻辑
  • 严格遵守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 02:40:26