php - Authorize.Net 支付处理不再有效
问题描述
我更改了使用 Authorize.Net 处理付款的 APIkey,并更新了 .env 文件,但仍然没有运气。我在下面收到此错误。有人告诉我,如果登录 ID 和交易密钥正确,这不应该发生,但我已经对两者进行了三重检查。
错误
net\authorize\api\contract\v1\MessagesType\MessageAType {#890
-code: "E00007"
-text: "User authentication failed due to invalid authentication values."
}
]
}
解决方案
这经常出现,原因总是相同的:
- 您正在使用您的生产凭据,但访问沙盒端点
- 您正在使用您的沙盒凭据,但正在访问生产端点
- 您使用的凭据不正确
验证您实际访问的 API 端点 URL。
如果您正在针对生产环境进行测试,请验证您的代码中的 URL 是实际的生产 URL(或者如果您使用的是框架,则配置设置为生产)。
生产的正确 URL 是https://api2.authorize.net/xml/v1/request.api
.
测试的正确 URL 是https://apitest.authorize.net/xml/v1/request.api
验证您的所有凭据是否正确
如果您确定您访问的是正确的端点,则需要验证您是否为该环境使用了正确的凭据。
- 确保您使用的是 API 登录名和事务密钥,而不是控制台登录名和密码。它们不是一回事。访问 API 时,只有 API 登录名和事务密钥有效。您可以在登录控制台后获取这些。
- 仔细检查控制台中的 API 登录是否正确。
- 如果 API 登录正确,则从客户控制台中生成一个新的交易密钥以验证您是否拥有正确的交易密钥。
- 确保不会在您的代码中意外输入错误的凭据。确保所有字符都在那里。此外,凭据区分大小写。确保您没有大写或小写这些值。
- 如果您需要验证您的登录凭据,请设置一个 MVCE,该 MVCE 会访问您尝试使用 API 凭据访问的端点。它应该是一个进行基本 API 调用的简单脚本。这将使调试您收到此错误的原因变得容易。
测试模式不是沙盒
将测试模式与沙盒环境混淆是很常见的。生产中的测试模式使用生产环境和生产凭证。使用沙盒凭据或 URL 将不起作用。
推荐阅读
- docusignapi - 用最后一个签名的日期填充生效日期的docusign
- java - 获取类名
- postman - 让 Postman 在监视器 2 上打开
- azure - 没有为丰富的通知启用 Azure Active Directory 工作负载
- powershell - 当 cmd 的类型适用于同一文件时,为什么 PowerShell 的 Get-Content 会返回“无法读取/拒绝访问”?
- java - java中StreamTokenizer的问题
- c# - Unity/C#:可控滚球的一致性
- ssl-certificate - 谷歌信任服务证书问题
- javascript - 将数据转换为所需格式后,select2 不会显示结果
- html - align-content 的初始值