public class XPayIntlClient extends Object
客户端严格封装开发者平台最终发布的余额查询、收款创建/查单和代付创建/查单五个接口,并在平台 HTTPS
接口域名后统一拼接 /intl/v1 版本路径,负责 lowerCamelCase JSON 序列化、五行请求签名、
标准 Header 发送和普通响应验签。SDK 不保存交易状态、不自动重试创建请求、不推断产品或路由能力;
已验签 HTTP 503 ORDER_RESULT_UNKNOWN 或网络结果不可验证时,商户必须先按原
merchantOrderNo 查单,有界查询后仅可用同一单号和完全一致的请求串行安全重试。
| Constructor and Description |
|---|
XPayIntlClient(XPayIntlConfig config)
创建可复用的国际版 API 客户端。
|
| Modifier and Type | Method and Description |
|---|---|
XPayIntlResponse |
createPaymentOrder(PaymentOrderCreateRequest request)
创建国际版收款订单。
|
XPayIntlResponse |
createPayout(PayoutCreateRequest request)
创建国际版代付订单。
|
XPayIntlResponse |
getBalances()
查询商户全部可用国家币种账户余额。
|
XPayIntlResponse |
getBalances(String country,
String currency)
按可选国家和币种筛选查询商户余额列表。
|
XPayIntlResponse |
getBalancesByCountry(String country)
按国家查询商户余额列表。
|
XPayIntlResponse |
getBalancesByCurrency(String currency)
按币种查询商户余额列表。
|
XPayIntlResponse |
getPaymentOrderByMerchantOrderNo(String merchantOrderNo)
按商户订单号查询国际版收款订单。
|
XPayIntlResponse |
getPayoutByMerchantOrderNo(String merchantOrderNo)
按商户订单号查询国际版代付订单。
|
public XPayIntlClient(XPayIntlConfig config)
客户端和底层 OkHttpClient 可被多个线程共享;构造过程不访问网络、数据库或缓存,不启动事务或异步任务。 配置为空时立即 fail-close 抛出参数异常。
config - 已校验的 HTTPS 接口域名、API Key、API Secret 和响应验签配置IllegalArgumentException - 配置为空时抛出public XPayIntlResponse getBalances()
方法只执行签名 HTTPS GET,不开启本地事务、不缓存余额,也不自动重试;响应在返回前必须通过 API Secret 验签。调用方不得把一次余额快照当作后续路由或资金可用性的永久保证。
balances 列表XPayIntlException - 网络或响应验签失败时抛出;无签名非2xx前置错误作为不可信诊断响应返回public XPayIntlResponse getBalancesByCountry(String country)
本方法只把国家作为可选筛选拼入签名 requestUrl,不修改交易状态、不缓存结果、不自动重试。筛选无匹配时
服务端返回空 balances 列表。
country - ISO 3166-1 alpha-2 国家编码,例如 PHbalances 列表IllegalArgumentException - country 为空时抛出XPayIntlException - 网络或响应验签失败时抛出public XPayIntlResponse getBalancesByCurrency(String currency)
本方法只把币种作为可选筛选拼入签名 requestUrl,不修改交易状态、不缓存结果、不自动重试。筛选无匹配时
服务端返回空 balances 列表。
currency - ISO 4217 币种编码,例如 PHPbalances 列表IllegalArgumentException - currency 为空时抛出XPayIntlException - 网络或响应验签失败时抛出public XPayIntlResponse getBalances(String country, String currency)
country 与 currency 均可为空;都为空表示查询当前商户全部 ACTIVE 国家币种账户,只传其中之一表示按该维度 过滤,同时传入表示查询精确国家币种账户。SDK 会按实际传参生成签名 requestUrl,不发送空Query参数。
country - 可选 ISO 3166-1 alpha-2 国家编码,例如 PH;为空表示不限国家currency - 可选 ISO 4217 币种编码,例如 PHP;为空表示不限币种balances 列表IllegalArgumentException - country 或 currency 传入空白字符串时抛出XPayIntlException - 网络或响应验签失败时抛出;无签名非2xx前置错误作为不可信诊断响应返回public XPayIntlResponse createPaymentOrder(PaymentOrderCreateRequest request)
服务端以 merchantOrderNo 实现创建幂等;SDK 不发送额外幂等 Header、不自动重试,也不参与平台交易
事务。已验签 HTTP 503 ORDER_RESULT_UNKNOWN 不包含平台订单号;调用方必须先按原商户订单号查单,
有界查询后仅可用同一单号和完全一致的请求串行重试。超时、断连或无法验证的响应也按该保守边界恢复。
request - lowerCamelCase 收款订单创建请求,不能为空status 判断业务状态,503未知结果仅含错误体IllegalArgumentException - request 为空时抛出XPayIntlException - 网络、JSON 序列化或响应验签失败时抛出public XPayIntlResponse getPaymentOrderByMerchantOrderNo(String merchantOrderNo)
本方法用于常规查单和创建请求未知结果恢复,不开启本地事务、不缓存结果且不自动重试;返回前执行响应 fail-close 验签。并发查询只读取平台当前状态,不替调用方解决本地状态更新并发。
merchantOrderNo - 创建时使用的商户订单号IllegalArgumentException - merchantOrderNo 为空时抛出XPayIntlException - 网络或响应验签失败时抛出public XPayIntlResponse createPayout(PayoutCreateRequest request)
服务端以 merchantOrderNo 实现创建幂等;SDK 不发送额外幂等 Header、不自动重试,也不参与扣款、
路由或渠道事务。已验签 HTTP 503 ORDER_RESULT_UNKNOWN 不包含平台订单号;必须先按原商户订单号查单,
有界查询后仅可用同一单号和完全一致的请求串行重试,避免资金类重复提交。超时、断连或无法验证的响应也按该保守边界恢复。
request - lowerCamelCase 代付订单创建请求,包含字符串账号和金额对象,不能为空IllegalArgumentException - request 为空时抛出XPayIntlException - 网络、JSON 序列化或响应验签失败时抛出public XPayIntlResponse getPayoutByMerchantOrderNo(String merchantOrderNo)
本方法是资金类创建未知结果的必需恢复路径,不开启本地事务、不缓存结果且不自动重试;响应签名无效时 fail-close 抛出异常,调用方不得使用未验证 Body 更新资金状态。
merchantOrderNo - 创建时使用的商户订单号IllegalArgumentException - merchantOrderNo 为空时抛出XPayIntlException - 网络或响应验签失败时抛出Copyright © 1980. All rights reserved.