DPM(Authorize.Net)的代码梯队

本文关键字:代码 Authorize Net DPM | 更新日期: 2023-09-27 18:29:33

我使用的是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(Authorize.Net)的代码梯队

对于DPM,您实际上无法对代码后面的字段(如"x_bank_aba_code"等)执行任何操作,因为这将涉及发布回您自己的服务器,这将使您陷入"PCI Compliance"的境地,而"PCI Compliancy"从一开始就否定了使用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;

我稍后会尝试发布更多详细信息。

希望这会有所帮助,但主要的一点是,银行/CC/ECECK信息无法打包发布到您的服务器上,这就是javascript/jquery通过验证输入和加载隐藏变量来实现的。