错误:(103)无法接受此交易 - Authorize.Net

时间:2015-08-26 12:42:01

标签: c# asp.net .net authorize.net

我是Authorize.net的新手,试图将我的演示网站集成到Authorize.net。当我点击付款按钮时,每次都会出现错误“(103)此交易无法接受”。在网上搜索但无法解决。任何人都可以指出我所缺少的东西吗?这是我正在使用的asp.net代码。

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
    <div>
        <div id="divCreditPay" runat="server" style="margin: 10px 30px 10px 10px; background-color: transparent !important; border: 1px solid #cccccc; padding: 15px;">
            <span id="spanCreditPay" style="padding: 1px 0 5px 5px;">


            <input type="hidden" name="x_fp_hash" value="'<%= AuthorizeNet_x_fp_hash %>'" />
            <input type="hidden" name="x_fp_sequence" value="'<%= AuthorizeNet_x_fp_sequence %>'" />
            <input type="hidden" name="x_invoice_num" value="'<%= PurchaseID %>'" />
            <input type="hidden" name="x_fp_timestamp" value="'<%= AuthorizeNet_x_fp_timestamp %>'" />
            <input type="hidden" name="x_login" value="6dubCXe76W" />
            <input type="hidden" name="x_relay_url" value="'<%= AuthorizeNet_x_relay_url %>'" />
            <%--<input type='hidden' name='x_relay_response' value="'<%= AuthorizeNet_x_relay_response %>'" />--%>
            <input type="hidden" name="x_relay_response" value="True" />

            <input type="hidden" name="x_receipt_link_url" value="'<%= AuthorizeNet_x_receipt_link_url %>'" />
            <input type="hidden" name="x_test_request" value="'<%= AuthorizeNet_x_test_request %>'" />
            <input type="hidden" name="x_method" value="CC" />
            <input type="hidden" name="x_type" value="AUTH_CAPTURE" />
            <input type="hidden" name="x_first_name" value="'<%= AuthorizeNet_x_first_name %>'" />
            <input type="hidden" name="x_last_name" value="'<%= AuthorizeNet_x_last_name %>'" />
            <input type="hidden" name="x_amount" value='<%=AuthorizeNet_x_amount%>' />
            <input type="hidden" name="x_address" value="'<%= AuthorizeNet_x_address %>'" />
            <input type="hidden" name="x_city" value="'<%= AuthorizeNet_x_city %>'" />
            <input type="hidden" name="x_state" value="'<%= AuthorizeNet_x_state %>'" />
            <input type="hidden" name="x_zip" value="'<%= AuthorizeNet_x_zip %>'" />

            <div id="divminiContainer" style="padding: 15px 0px 15px 25px;">
                <table id="tblCreditPay" style="width: 100%;">
                    <tr>
                        <td class="tdCreditPay" style="width: 25%;">Card number</td>
                        <td>
                            <asp:TextBox ID="txt_creditCard" runat="server" Width="253px"></asp:TextBox></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><span>mm</span><span style="padding-left: 45px">yy</span></td>
                    </tr>
                    <tr>
                        <td>Expiration date</td>
                        <td>
                            <asp:TextBox ID="txt_expDate" runat="server" Width="50px"></asp:TextBox>
                            / 
                    <asp:TextBox ID="txt_expYear" runat="server" Width="50px"></asp:TextBox>
                        </td>
                    </tr>
                    <tr>
                        <td>CSC (optional)</td>
                        <td>
                            <asp:TextBox ID="txt_csc" runat="server" Width="50px"></asp:TextBox>
                        </td>
                    </tr>
                    <tr style="padding-top: 15px;">
                        <td></td>
                        <td>
                            <asp:Button runat="server" ID="btn_payNowCC" OnClick="btn_payNowCC_Click" Text="btn_payNowCC" />
                        </td>
                    </tr>
                </table>

                </div>
        </div>


    </div>
</form> </body> </html>

和Code Behind

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        btn_payNowCC.PostBackUrl = "https://test.authorize.net/gateway/transact.dll";
        //btn_payNowCC.PostBackUrl = "https://secure.authorize.net/gateway/transact.dll";  
    }
    protected void btn_payNowCC_Click(object sender, EventArgs e)
    {        
        string ccNumber = txt_creditCard.Text;
        string dt = txt_expDate.Text + txt_expYear.Text;

        strAuthorizeNet_x_amount = "12.34";
        strAuthorizeNet_x_login = ConfigurationManager.AppSettings["AUTHORIZE_NET_API_LOGIN"];
        strAuthorizeNet_x_first_name = "Hr";
        strAuthorizeNet_x_last_name = "Hnw";
        strAuthorizeNet_x_address = "123 main st.";
        strAuthorizeNet_x_city = "Indore";
        strAuthorizeNet_x_state = "MP";
        strAuthorizeNet_x_zip = "123456";

        strAuthorizeNet_x_fp_timestamp = AuthorizeNet.Crypto.GenerateTimestamp().ToString();
        strAuthorizeNet_x_fp_sequence = AuthorizeNet.Crypto.GenerateSequence();
        strAuthorizeNet_x_relay_response = "TRUE";
        strAuthorizeNet_x_test_request = "TRUE";
        strAuthorizeNet_x_fp_hash = AuthorizeNet.Crypto.GenerateFingerprint("88v7G7Emg965Nb9s", strAuthorizeNet_x_login, decimal.Parse(strAuthorizeNet_x_amount), strAuthorizeNet_x_fp_sequence, strAuthorizeNet_x_fp_timestamp);
        //strAuthorizeNet_x_fp_hash = AuthorizeNet.Crypto.GenerateFingerprint(ConfigurationManager.AppSettings["AUTHORIZE_NET_TRANSACTION_KEY"], strAuthorizeNet_x_login, decimal.Parse(strAuthorizeNet_x_amount), strAuthorizeNet_x_fp_sequence, strAuthorizeNet_x_fp_timestamp);

        strAuthorizeNet_x_relay_url = ConfigurationManager.AppSettings["MainWebURL"] + "SIM.aspx";

        strAuthorizeNet_x_receipt_link_url = ConfigurationManager.AppSettings["MainWebURL"] + "Thanks.aspx";      
    }

这是web.config

<?xml version="1.0"?>

<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>
  <appSettings>
    <add key="AUTHORIZE_NET_API_LOGIN" value="6dubCXe76W"/>
    <add key="AUTHORIZE_NET_TRANSACTION_KEY" value="88v7G7Emg965Nb9s"/>
    <add key="AUTHORIZE_NET_MD5_HASH" value="" />
    <add key="MainWebURL" value="https://test.authorize.net/gateway/transact.dll"/>
  </appSettings>

    <system.web>
      <compilation debug="true" targetFramework="4.5" />
      <httpRuntime targetFramework="4.5" />
    </system.web>

</configuration>

1 个答案:

答案 0 :(得分:0)

来自Authorize.Net

  

回复原因代码:103

     

响应原因文本:有效的指纹或交易密钥是   这笔交易需要。

     

当您的Authorize.Net帐户所在时,会生成此错误   密码要求模式,您没有发送有效的交易密钥   或使用您的交易请求散列指纹。为了安全   我们建议始终提交交易密钥或哈希的原因   指纹。此外:

     

如果您使用的是SIM,请确保使用的是有效的交易密钥   生成并发送指纹哈希以及您的交易   请求。应使用该字段提交指纹哈希   x_fp_hash。如果您使用的是SIM并提交信用申请,   无效或先前授权捕获(x_type = CREDIT,VOID或   PRIOR_AUTH_CAPTURE)您可能会遇到此错误。出于安全考虑   必须通过登录Merchant来处理这些交易类型   直接接口,或使用使用AIM的桌面应用程序。

基本上您的指纹或交易密钥错误。