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

集成Visa Click to Pay按钮时遇API Key无效错误求助

Visa Click to Pay SDK初始化提示“API Key无效”错误排查

我正在网站上集成Visa Click to Pay按钮,但初始化SDK时一直收到“api key invalid”错误。

已完成的集成步骤:

  1. 引入官方JS SDK脚本:
<script type="text/javascript" src="https://sandbox.secure.checkout.visa.com/checkout-widget/resources/js/integration/v1/sdk.js"></script>
  1. SDK初始化代码:
V.init({
    apikey: '从Visa开发者中心凭证区获取的“API Key”',
    encryptionKey: '对“Shared Secret”先做base64解码再用私钥解密后的值',
    settings: {
        locale: 'en_US',
        countryCode: 'US',
        displayName: 'Your Merchant Name'
    }
});
  1. 绑定支付相关事件:
V.on('payment.success', function (response) {
    console.log('Payment successful:', response);
    // 处理支付成功逻辑
});

V.on('payment.error', function (error) {
    console.error('Payment error:', error);
    // 处理支付错误逻辑
});

V.on('payment.cancel', function () {
    console.log('Payment cancelled');
    // 处理支付取消逻辑
});

页面加载后,SDK发起的GET https://sandbox.secure.checkout.visa.com/wallet-services-web/merchant请求返回401 Unauthorized,响应体如下:

{
    "responseStatus": {
        "status": 401,
        "code": "9005",
        "severity": "ERROR",
        "message": "Invalid ApiKey",
        "info": "http://api.visa.com/docs/errors/9005"
    }
}

已尝试的操作:

  • 更换Visa开发门户凭证区的不同值作为encryptionKey,结果一致
  • 按照以下步骤解密Shared Secret:
# cat encrypted_shared_secret.txt | base64 --decode > decoded_data.bin
# openssl pkeyutl -decrypt -in decoded_data.bin -inkey private_key.pem -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256 > decrypted_shared_secret.txt

API Key来源确认:已从Visa开发者中心凭证区复制(截图展示复制位置)

请帮忙排查集成方式是否有误或代码存在遗漏。


可能的排查方向

  • 确认API Key环境匹配:确保使用的API Key是沙箱(sandbox)环境的,不要和生产环境的凭证混淆,Visa开发者中心会区分沙箱和生产凭证,检查凭证区的环境标签。
  • API Key复制完整性:检查复制的API Key是否包含多余空格、换行符,或者遗漏了部分字符,建议手动重新复制一次,避免复制时的格式问题。
  • 加密密钥生成正确性:验证解密Shared Secret的步骤是否完全符合Visa文档要求:
    • 确认使用的私钥是在Visa开发者中心创建凭证时生成的对应私钥,不要使用其他项目的私钥
    • 检查openssl命令的参数是否正确,特别是rsa_padding_mode:oaep和rsa_oaep_md:sha256这两个参数,确保和Visa要求的填充模式、哈希算法匹配
  • 初始化参数名称检查:确认初始化时的参数名是apikey(全小写),避免拼写错误(比如写成apiKey),Visa SDK对参数名大小写可能有严格要求。
  • 域名白名单配置:检查Visa开发者中心是否配置了当前网站的域名白名单,沙箱环境下如果没有配置允许的域名,也可能导致API Key验证失败。

内容的提问来源于stack exchange,提问作者Anton-Ivanov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 08:03:17