DPM 代码电子检查 (Authorize.Net)

Code echecks for DPM (Authorize.Net)

我正在使用 asp.net、c# 和 Web 表单(不是 MVC)。

我一直关注这个话题,但我不确定实现这个解决方案的背后代码是什么。

https://community.developer.authorize.net/t5/Integration-and-Testing/DPM-with-EChecks/m-p/33623#M181...

声明将此用于表单:

<input type='hidden' runat="server" name='x_login' id='x_login' />
<input type='text' readonly="readonly" runat="server" name='x_amount' id='x_amount' size='9' />
<input type='text' runat="server" name='x_fp_sequence' id='x_fp_sequence' />
<input type='text' runat="server" name='x_fp_timestamp' id='x_fp_timestamp' />
<input type='text' runat="server" name='x_fp_hash' id='x_fp_hash' />
<input type='hidden' name='x_method' id='x_method' value='ECHECK' />
<input type='hidden' name='x_bank_aba_code' id='x_bank_aba_code' value='?????????' />
<input type='hidden' name='x_bank_acct_num' id='x_bank_acct_num' value='123456789123' />
<input type='hidden' name='x_bank_acct_type' id='x_bank_acct_type' value='CHECKING' />
<input type='hidden' name='x_bank_name' id='x_bank_name' value='bANKnAME' />
<input type='hidden' name='x_bank_acct_name' id='x_bank_acct_name' value='aCCOUNTnAME' />
<input type='hidden' name='x_echeck_type' id='x_echeck_type' value='WEB' />
<input id="x_relay_url" name="x_relay_url" type="hidden" value="https://developer.authorize.net/tools/paramdump/index.php" />
<input type='hidden' name='x_relay_response' value='true' />
<input type='hidden' name='x_delim_data' value='false' />
<input type='submit' runat="server" id='buttonLabel' />

所以我的问题是我的 C# 代码中需要什么才能让它工作?我一直在搜索,但没有找到有关 DPM 方法主题的资源。我只看过 AIM 的资源。

对于 DPM,您实际上无法在代码隐藏中对诸如 "x_bank_aba_code" 等字段执行任何操作,因为这将涉及 posting 回到您自己的服务器,这将把您进入了 "PCI Compliance" 的领域,这首先否定了使用 DPM。

我所做的是:

1) 请求上一页的所有非 CC 或 ECHECK 数据

2) 存储此数据并为记录生成一个 GUID

3) 从代码隐藏加载支付页面上的所有数据(在 PageLoad() 上 - 在 URL 上传递 guid,这样您就可以提取适当的记录并显示已输入的数据)

4) 任一 将您的实际输入字段命名为 "x_bank_aba_code",等等(我不推荐这样做) -要么- 将 OnClientClick() 事件附加到您的提交按钮(允许验证。)然后...

5) 使用验证加载隐藏变​​量。

        // Routing Number
        var routingNumber  = $("#<%=txtBankRoutingNumber.ClientID%>").val();
        var routingNumber2 = $("#<%=txtBankRoutingNumberConfirm.ClientID%>").val();

        routingNumber  = routingNumber.trim();
        routingNumber2 = routingNumber2.trim();

        if (routingNumber == '') {
            alert('Please provide your Routing Number.');
            return false;
        }

        if (routingNumber2 == '') {
            alert('Please confirm Routing Number.');
            return false;
        }

        if (routingNumber != routingNumber2) {
            alert('Routing Numbers don\'t match.');
            return false;
        }

        // THIS LINE WILL SET THE HIDDEN VARIABLE
        document.getElementsByName('x_bank_aba_code')[0].value = routingNumber;

稍后我会尝试post更详细的内容。

希望这会有所帮助 - 但要点是 banking/CC/ECHECK 信息无法 post 打包到您的服务器 - 这就是 javascript/jquery 通过验证输入来发挥作用的地方并加载隐藏变​​量。