Onerway
POST

Apple Pay 商户验证

该接口用于由 Onerway 代为报备 Apple Pay 域名的商户在 onvalidatemerchant 事件中通过 Onerway 向 Apple 获取 merchant session。使用自有 Apple Developer 账号的商户用自己的 Merchant Identity 证书直接向 Apple 请求,不调用本接口;接入层级与会话流程见 Apple Pay。

请求

merchantNo
Onerway 分配的商户号;获取方式参见接入准备。
示例:
appId
Onerway 分配给商户应用或站点的标识,用于识别展示 Apple Pay 按钮的应用。
示例:
requestId
商户生成的请求唯一标识,用于链路追踪。
示例:
verifyUrl
Apple 商户验证 URL,Onerway 代商户向该地址请求 merchant session。
约束
规则
原样透传 onvalidatemerchant 事件中的 validationURL;转发前在服务端确认其主机是 Apple Pay 网关域名,其他 URL 一律拒绝。
website
展示 Apple Pay 按钮的商户域名,不含协议前缀。
示例:
约束
规则
必须是 Onerway 已为该商户报备且通过 Apple 域名验证的域名,并与发起 Apple Pay 会话的页面所在域名一致;对应 Apple 的 initiativeContext。
sign
请求签名字符串;生成方式详见请求签名。

请求示例

curl -X POST 'https://sandbox-acq.onerway.com/txn/apiCheckApplePay' \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "merchantNo": "replace_with_merchant_no",
  "appId": "replace_with_app_id",
  "requestId": "req_demo_apple_pay_202609090001",
  "verifyUrl": "https://apple-pay-gateway.apple.com/paymentservices/startSession",
  "website": "example.com",
  "sign": "{{SIGN}}"
}'

响应

respCode
Onerway 返回的请求处理结果代码;20000 表示已取得 merchant session,其他代码表示失败。完整码表见响应码。
respMsg
请求处理结果的可读说明。
data
Apple 针对本次验证请求返回的 merchant session。
约束
规则
值为 JSON 字符串。前端解析后把得到的对象原样传给 session.completeMerchantValidation(),不要检查、修改、缓存或复用;Apple merchant session 有时效,只在 onvalidatemerchant 事件内请求并立即完成验证。

响应示例

{
  "respCode": "20000",
  "respMsg": "Success",
  "data": "{\"epochTimestamp\":1757400000000,\"expiresAt\":1757400300000,\"merchantSessionIdentifier\":\"replace_with_merchant_session_identifier\",\"nonce\":\"replace_with_nonce\",\"merchantIdentifier\":\"replace_with_merchant_identifier\",\"domainName\":\"example.com\",\"displayName\":\"Example Store\",\"signature\":\"replace_with_signature\"}"
}
该接口暂未记录错误响应。