【问题标题】:accept.js in sandbox - E_WC_21: User authentication failed沙箱中的 accept.js - E_WC_21:用户身份验证失败
【发布时间】:2019-11-06 14:12:42
【问题描述】:

尝试制定 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 作为替代似乎相当简单,我也被困在这里。

接下来我该尝试什么?

【问题讨论】:

  • 如果我在这里输入我的密钥:developer.authorize.net/api/reference/… ... 交易通过并获得批准。所以,我知道我有工作密钥。这绝对意味着我上面的代码中有一些愚蠢的东西......

标签: authorize.net accept.js


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-12-10
    • 1970-01-01
    • 2020-11-28
    • 2019-01-16
    • 2017-07-25
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多