php - Authorize.net:“createTransactionRequest”具有无效的子元素“clientId”
问题描述
我正在尝试使用我的 Laravel 7 应用程序和 Authorize.net 进行测试交易。
提交样本数据后,我得到:
命名空间“AnetApi/xml/v1/schema/AnetApiSchema.xsd”中的元素“createTransactionRequest”在命名空间“AnetApi/xml/v1/schema/AnetApiSchema.xsd”中具有无效的子元素“clientId”。预期的可能元素列表:命名空间“AnetApi/xml/v1/schema/AnetApiSchema.xsd”中的“merchantAuthentication”。
任何人都知道是什么导致了这个错误或如何解决它?
解决方案
好吧,我会回答我自己的问题,因为它可能会帮助其他人。问题是 Authorize.net 响应中的错误消息非常模糊。
Kurt Friars 的评论很有帮助,因为它为我指明了正确的方向。至于 Mansour Hamcherif 的建议,merchantAuthentication 对象是在我的应用程序中设置的,它只是没有正确的值,所以不是那样的。
我的解决方案是将正确的值设置为 setName() 和 setTransactionKey()。参与此项目的前一位开发人员留下了值,并且凭据已过期。我对“setTransactionKey”进行了 Linux 文本搜索,这使我找到了需要设置的正确 PHP 文件:
$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
$merchantAuthentication->setName('EnterYourLoginNameHere');
$merchantAuthentication->setTransactionKey('EnterYourTransactionKey');
之后,我清除了所有 Laravel 应用程序的缓存以及浏览器的缓存,重新加载,再次尝试事务,它成功了!我有:
This transaction has been approved., Transaction ID: **********.
推荐阅读
- jenkins - WebDriverIO 没有这样的元素:无法找到元素
- python - 如何计算两条线之间的交点,其中一条由数据框列定义
- elasticsearch - Kafka Mysql CDC 到弹性搜索
- python - 如何使用gridbox布局设置一个按钮来填充整行?
- javascript - 在反应 js 中出现“this.props.sumOfPrices 不是函数”的错误?
- php - 如何根据特定条件粘贴数组项
- json - 如何连接字符串以在 Postgres 中形成 json 对象?
- angular - 如何在 Angular 中编写参数一推荐 Endpoint To Database
- java - 在多个选项卡中重用 Fragment
- reactjs - 如何获取高阶组件中的 ref 值?