首页 > 解决方案 > 沙箱中的 accept.js - E_WC_21:用户身份验证失败

问题描述

试图找出accept.js 来替换authorize.net 付款的折旧方法。没有做任何复杂的事情,但在使用沙箱时无法通过身份验证失败消息

登录沙盒帐户以生成密钥……它们的名称与代码示例略有不同。所以我可能是个白痴。

好的,apiLoginID - 很明显……下面的代码调用 data-clientKey。不能 100% 确定以下两者中的哪一个实际上是。我都试过了。两者都有同样的错误。

API登录ID:4CLLpD------

交易密钥:9628s6xCSh------

键:-----A4D932A4AFED546DE55E4D04C16CA66549915AFDC4FBA3A1665E271A2FB48A7A34394843A47BC170FFB4A5B99EDD17B75D99942E4E7F7133C2E1-----

<script type="text/javascript"
    src="https://jstest.authorize.net/v3/AcceptUI.js"
    charset="utf-8">
</script>

<form id="paymentForm"
    method="POST"
    action="mysite.com/beta-account/order-receipt.php" >
    <input type="hidden" name="dataValue" id="dataValue" />
    <input type="hidden" name="dataDescriptor" id="dataDescriptor" />
    <button type="button"
        class="AcceptUI btn-success btn-lg"
        data-billingAddressOptions='{"show":true, "required":false}' 
        data-apiLoginID="4CLLpDX----" 
        data-clientKey="9628s6xCShc-----"
        data-acceptUIFormBtnTxt="Submit" 
        data-acceptUIFormHeaderTxt="Card Information" 
        data-responseHandler="responseHandler">Pay
    </button>
</form>

<script type="text/javascript">

function responseHandler(response) {
    if (response.messages.resultCode === "Error") {
        var i = 0;
        while (i < response.messages.message.length) {
            console.log(
                response.messages.message[i].code + ": " +
                response.messages.message[i].text
            );
            i = i + 1;
        }
    } else {
        paymentFormUpdate(response.opaqueData);
    }
}

function paymentFormUpdate(opaqueData) {
    document.getElementById("dataDescriptor").value = opaqueData.dataDescriptor;
    document.getElementById("dataValue").value = opaqueData.dataValue;
    document.getElementById("paymentForm").submit();
}
</script>

现在,order-receipt.php 页面上没有任何内容。我只是想让帖子走得那么远,并向我展示发布到页面的所有内容的转储,所以即使我得到了这个工作,我还有很长的路要走。

当我进入支付页面时,点击“支付”按钮,填写信用卡表格,点击“提交”......它根本没有去任何地方。它停留在页面上并且控制台报告:“E_WC_21:由于身份验证值无效,用户身份验证失败。”

这变成了一件更令人沮丧的事情,因为我在 authorize.net 的文档中发现了我需要对 MD5 报废做些什么的文档……其中我永远无法找到任何工作来更换 SIM 继电器-正在使用的响应方法。response.js 作为替代品似乎相当简单,我也被困在这里。

我接下来要尝试什么?

标签: authorize.netaccept.js

解决方案


好的,我想我找到了问题……API 登录 ID、事务密钥和客户端密钥之间存在差异。这在某些文档中并不是很明显……


推荐阅读