Google Pay与Authorize.net集成问题:无效所有权错误
错误详情
交易时触发**「无效所有权」错误**,错误代码153:
There was an error processing the payment data. Invalid ownership.
已完成配置步骤
- 遵循Authorize.net Google Pay官方设置指南
- 确认Authorize.net账户使用支持的支付处理器
- 生成并配置Authorize.net API Login ID和Transaction Key
- 在Authorize.net商户后台启用Google Pay服务
- 确认应用符合Google Pay开发者要求
- 疑似Google Pay公钥生成/配置有误,尚未获取并配置Google KeySet ID
核心问题
- 如何为Authorize.net正确生成Google Pay公钥和KeySet ID?
- 在Google Pay & Wallet Console中获取KeySet ID的具体步骤是什么?
- 「无效所有权」错误是否与未配置正确公钥有关?
补充信息(2025/01/29)
- 技术栈:Ionic 6 / Angular 16 / Capacitor / C# .NET API
- Google Pay库:
@ionic-enterprise/google-pay": "^2.2.2 - 端到端流程:
- 向Google Pay发送
GooglePayTransactionInfo对象发起授权请求 - 调用
GooglePay.makePaymentRequest({..})获取支付令牌,转换为base64格式 - 将令牌传入后端C# SDK处理交易,但仍返回无效所有权错误
- 向Google Pay发送
问题解答
3. 「无效所有权」错误是否与未配置正确公钥有关?
是的,该错误几乎肯定与Google Pay公钥/KeySet ID的配置不匹配直接相关。Authorize.net需要通过Google提供的公钥验证支付令牌的所有权合法性,未配置或配置错误的公钥会导致验证失败,触发153错误。
2. 在Google Pay & Wallet Console中获取KeySet ID的具体步骤
- 登录Google Pay & Wallet Console,进入你的目标项目
- 左侧导航栏选择「支付方法设置」>「令牌化密钥」
- 点击「创建令牌化密钥」,选择「Authorize.net」作为支付服务提供商
- 填写必填信息:包括你的Authorize.net商户ID、应用的域名(Web端)或包名(Capacitor移动端)
- 创建完成后,在令牌化密钥列表中即可看到对应的KeySet ID,同时可下载PEM格式的公钥文件
1. 为Authorize.net正确配置Google Pay公钥和KeySet ID的步骤
- 按上述步骤在Google Pay & Wallet Console获取KeySet ID和PEM公钥文件
- 登录Authorize.net商户后台,进入「设置」>「支付设置」>「Google Pay」配置页面
- 处理公钥:打开下载的PEM文件,去掉首尾的
-----BEGIN PUBLIC KEY-----、-----END PUBLIC KEY-----标记及所有换行符,保留纯公钥字符串 - 将处理后的公钥字符串粘贴到Authorize.net的「公钥」输入框,同时填入获取到的KeySet ID
- 保存配置,确保测试环境和生产环境的配置分别对应沙箱/正式资源
额外排查点(针对你的技术栈)
- 前端
GooglePay.makePaymentRequest的gateway配置需正确指向Authorize.net:const paymentRequest = { // 其他配置... gateway: { gatewayId: 'authorize_net', merchantId: '你的Authorize.net商户ID' } }; const result = await GooglePay.makePaymentRequest(paymentRequest); - 后端C# SDK处理令牌时,需正确构造
OpaqueData对象:var opaqueData = new OpaqueDataType { DataDescriptor = "COMMON.GOOGLE.PAY", DataValue = "前端传入的base64格式令牌" }; var paymentType = new PaymentType { OpaqueData = opaqueData }; // 构造CreateTransactionRequest并发起请求 - 确认测试环境使用Authorize.net沙箱账户+Google Pay测试模式,生产环境切换为正式配置,避免跨环境混用导致验证失败
内容的提问来源于stack exchange,提问作者Robert Green MBA
相关产品推荐
相关产品推荐

