【发布时间】:2017-09-22 10:26:29
【问题描述】:
首先,我使用 DPM 是因为我的理解是 Accept.js 不支持电子支票,而我参与进行此更新的全部原因是添加电子支票支持。
我正在尝试使用剃刀语法在 VB.Net 中为 DPM 重写一个经典的 ASP 页面。我多次收到错误响应:
发生了以下错误。 (13) 商户登录ID或密码无效或帐号无效。
我知道默认响应。我使用了错误的登录或发布到错误的 URL。我使用与当前 ASP 页面发布到的相同 URL 发布,并且使用相同的 x_login 值。
另外,如果我去这个网址:
https://secure.authorize.net/gateway/transact.dll?x_version=3.1&x_type=AUTH_ONLY&x_amount=1.99&x_car... 返回信用卡已过期。如果我在该 url 上输入无效的 x_login,它会返回“商家登录 ID 或密码无效或帐户处于非活动状态”。如果我输入有效的 x_login 和无效的 x_tran_key,我会收到“无法接受此交易”。
所以,我知道我的 x_login 是正确的,并且我正在发布到正确的 URL。
为了消除任何编码问题,我整理了一个简单的表格,只是为了将静态信息发布到 URL:
<html>
<body>
<form method="POST" action="https://secure.authorize.net/gateway/transact.dll">
<input type=hidden id="x_login" name="x_login" value='MY_LOGIN'/>
<input type=hidden id="x_cust_id" name="x_cust_id" value='106400289'/>
<input type=hidden id="x_card_num" name="x_card_num" value='5424000000000015'/>
<input type=hidden id="x_exp_date" name="x_exp_date" value='12-17'/>
<input type=hidden id="x_card_code" name="x_card_code" value='123'/>
<input type=hidden id="x_fp_hash" name="x_fp_hash" value='84EFB49E5F4A8F7CB3EEB3C6A1B2B305'/>
<input type=hidden id="x_amount" name="x_amount" value='123.60'/>
<input type=hidden id="x_fp_timestamp" name="x_fp_timestamp" value='1493038728'/>
<input type=hidden id="x_fp_sequence" name="x_fp_sequence" value='531'/>
<input type=hidden id="x_relay_url" name="x_relay_url" value='https://www.my.com/CCPayment2.vbhtml'/>
<input type=hidden id="x_relay_response" name="x_relay_response" value='Y'/>
<input type=hidden id="x_type" name="x_type" value='AUTH_CAPTURE'/>
<input type=hidden id="x_currency_code" name="x_currency_code" value='USD'/>
<input type=hidden id="x_version" name="x_version" value='3.1'/>
<input type=hidden id="x_invoice_num" name="x_invoice_num" value='2'/>
<input type="submit"/>
</form>
</body>
</html>
我使用以下链接验证了我的哈希值是正确的: http://developer.authorize.net/api/reference/responseCode99.html
这将返回错误消息: (13) 商户登录ID或密码无效或帐号无效。
在研究中,我确实找到了一位开发人员收到该消息的位置,因为他使用了相同的测试卡和金额,显然该消息是作为重复的结果返回的。所以我更改了金额、卡、时间戳和哈希值,然后再次尝试,结果相同。我还在隐藏字段中使用了“name”和“id”,因为我看到了对这两个字段的引用。
如果有人能提供任何帮助,我将不胜感激。
【问题讨论】:
-
您是否在生产环境中进行测试?还是在沙盒中?
-
仅供参考,问一个问题然后走开不是一个好主意。然后,您将无法回复 cmets,并且获得帮助的窗口会变小,从而危及您获得帮助的机会。随时待命,随时准备回答用户可能提出的任何问题,以便他们尝试为您提供帮助。
-
这个测试正在进行中,因为我知道我在那里有运营账户。
-
仅供参考,DPM is going away。您需要在不久的将来重新实现它,并且可能需要考虑使用替代实现方法。
-
您确定您使用的是 API 登录而不是控制面板登录吗?
标签: authorize.net