我正在尝试将authorize.net的DPM api集成到我的项目中。我遇到的问题是响应网址。我知道网上已经有很多关于这一点,但这对我来说都是胡言乱语。错误消息是:
An error occurred while trying to report this transaction to the merchant. An e-mail has been sent to the merchant informing them of the error. The following is the result of the attempt to charge your credit card.
This transaction has been approved.
It is advisable for you to contact the merchant to verify that you will receive the product or service.
在我的沙盒帐户的电子邮件中,我收到以下错误消息:
Your script timed out while we were trying to post transaction results to it.
在我的沙箱帐户中
http://myIp:8080/myProject/shoppingCart/authorizePayment Default Receipt URL Edit
http://myIp:8080/myProject/shoppingCart/paymentAuthorizing Default Relay Response URL Edit
我已经验证我可以使用该IP浏览我的网站,从外界访问myIp。
在我的表格上,我发送给他们:
<input name="x_relay_url" value="http://myIp:8080/myProject/shoppingCart/paymentAuthorizing">
在我的shippingCart控制器中
def paymentAuthorizing(){
[params: params]
}
以及payAuthorizing操作的gsp页面:
<meta name="layout" content="main">
<div>
Payment Authorizing. Please Wait
<g:javascript>
window.location.href = '<g:createLink action="authorizePayment" params="${params}"></g:createLink>';
</g:javascript>
</div>
这是
发布的第一号问题但似乎并不相关
我已经确认我可以通过Chrome rest客户端访问我的服务器
答案 0 :(得分:2)
rhldr在评论中解释了错误的原因。
Authorize.net文档中描述了您遇到的错误以及一些故障排除here。这是相关部分:
如果商家的Web服务器在公共Internet上不可用,启用了身份验证,或者中继URL使用非标准端口进行HTTP或HTTPS流量,则会发生中继响应超时。 Authorize.Net将无法连接到您的服务器或在您的服务器上进行身份验证,并且只能将端口80和443用于所有Web流量。
我建议尝试使用端口80或443并查看是否有效。
答案 1 :(得分:1)
Authorize.Net DPM提供的错误可能会产生误导。根据我的经验,我发现超时通常不是超时,而是一个无效的响应。以下所有导致您描述的错误消息: