Paysafe Card Payment API 返回 Error 5270
结论
Error 5270 表示授权失败。Paysafe 已识别请求中的凭据,但该凭据无权访问当前账户、环境或 Card Payments API 资源。
这并不一定是 API key 填写错误。常见原因包括:
- API 凭据与 URL 中的
account_id不属于同一个商户账户。 - 测试环境使用了生产凭据,或生产环境使用了测试凭据。
- 服务端请求使用了前端 SDK 的 public key,而不是服务器端 API 凭据。
- 当前商户账户尚未开通 Card Payments API,或凭据缺少相关权限。
- 凭据已重新生成或停用,或者权限配置有过调整。
排查步骤
1. 检查请求环境
测试凭据只能用于测试环境,生产凭据只能用于生产环境。除了检查 URL,还要确认凭据是在同一环境中生成的。
测试环境通常使用类似下面的地址:
https://api.test.paysafe.com/cardpayments/v1/...
生产环境应使用对应的生产 API 地址。具体地址以当前 Paysafe 商户后台或官方文档为准。
2. 核对 account_id
Card Payments API 的请求路径通常包含账户 ID:
/cardpayments/v1/accounts/{account_id}/auths
其中的 account_id 必须是分配给当前 API 凭据的 Card Payments 账户 ID。商户登录名、API key、业务编号或其他产品的账户 ID 都不能代替它。
如果同一商户主体下有多个账户,还需要确认当前凭据有权访问目标账户。
3. 确认使用服务器端凭据
服务端请求通常使用 HTTP Basic Authentication,并传入 API key 的用户名和密码。浏览器端或 Hosted Fields、SDK 使用的 public key 不能代替服务器端凭据。
示例:
curl --request POST \
--user 'API_KEY_USERNAME:API_KEY_PASSWORD' \
--header 'Content-Type: application/json' \
--data '{
"merchantRefNum": "order-20260913-001",
"amount": 1000,
"settleWithAuth": false,
"card": {
"cardNum": "TEST_CARD_NUMBER",
"cardExpiry": {
"month": 12,
"year": 2030
},
"cvv": "123"
}
}' \
'https://api.test.paysafe.com/cardpayments/v1/accounts/ACCOUNT_ID/auths'
示例中的账户、卡号和字段只用于说明请求结构,请替换为 Paysafe 为当前测试环境提供的数据。不要将生产密钥写入前端代码、日志或代码仓库。
4. 检查 Basic Auth 的构造方式
如果自行生成 Authorization 请求头,格式应为:
Authorization: Basic Base64(API_KEY_USERNAME:API_KEY_PASSWORD)
例如:
const username = process.env.PAYSAFE_API_USERNAME;
const password = process.env.PAYSAFE_API_PASSWORD;
const accountId = process.env.PAYSAFE_ACCOUNT_ID;
const authorization = Buffer
.from(`${username}:${password}`, "utf8")
.toString("base64");
const response = await fetch(
`https://api.test.paysafe.com/cardpayments/v1/accounts/${accountId}/auths`,
{
method: "POST",
headers: {
Authorization: `Basic ${authorization}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
merchantRefNum: "order-20260913-001",
amount: 1000,
settleWithAuth: false
})
}
);
重点检查用户名和密码是否写反,以及环境变量中是否夹带空格、引号或换行符。
如果所有请求都返回 5270
如果多个 Card Payments 接口始终返回 5270,并且环境、认证格式和 account_id 都已确认无误,问题很可能出在 Paysafe 侧的账户授权配置上。例如,商户账户尚未启用 Card Payments 产品,或者 API 凭据没有关联到目标账户。
这种情况下,继续调整请求参数通常无效。请联系 Paysafe 支持团队或账户经理,并提供以下信息:
- 使用的是测试环境还是生产环境;
- 请求路径和 HTTP 方法;
account_id;- 错误代码
5270; - 响应中的 request ID、correlation ID 或时间戳(如果有);
- API key 的标识信息,但不要发送完整密码或完整的
Authorization请求头。
注意事项
Error 5270 更接近“身份已识别,但资源访问被拒绝”,并不表示支付卡被拒绝。它通常出现在业务处理开始前,因此更换卡号、金额或订单号一般不能解决问题。
如果只有某个账户或接口返回 5270,先检查该资源的权限。如果所有接口都返回 5270,则先检查请求环境、凭据类型、账户绑定关系,以及 Card Payments API 是否已经开通。
备注:内容仅供参考。