使用barclaycard payment epdq创建别名 - 未知订单/ 1 / s /

时间:2014-07-21 14:47:31

标签: paypal payment-gateway payment payment-services amazon-pay

以下是用于创建Alias的代码,该代码不起作用并抛出错误 "未知订单/ 1 / s /"。如果我删除Alias的代码,相同的代码适用于付款。  不确定我错过了什么? 我可以登录到epdq barclaycard帐户,看到错误是"未知订单/ 1 / s /"。我也可以通过epdq帐户手动创建Alias,但是无法在没有错误的情况下访问orderstandard.asp页面(当使用别名隐藏字段和代码时)。

如果有人能帮助我,我会很高兴的。

<body>
<form id="OrderForm" action="https://payments.epdq.co.uk/ncol/prod/orderstandard.asp" method="post" runat="server">
    <div>
        <asp:HiddenField ID="AMOUNT" runat="server" />
        <asp:HiddenField ID="CN" runat="server" />
...
        <asp:HiddenField ID="ALIAS" runat="server" />
        <asp:HiddenField ID="ALIASUSAGE" runat="server" />
        <asp:HiddenField ID="ALIASOPERATION" runat="server" />
        <asp:HiddenField ID="SHASign" runat="server" />



using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Text; //for Encoding
using System.Security.Cryptography; //for SHA1



    public partial class _DefaultAliasTest : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //-- Set Values (these would be pulled from DB or a previous page). -- //
            bool isAlias = true;
            //- Customer/Order Details - //
            string strUserTitle = "Mr";                         // Customer details
            string strUserFirstname = "Edward";
            string strUserSurname = "Shopper";
            string strBillHouseNumber = "123";                  // Address Details
            string strAd1 = "Penny Lane";
            string strAd2 = "Central Areas";
            string strBillTown = "Middlehampton";               // Bill Town
            string strBillCountry = "England";                  // Bill Country
            string strPcde = "NN4 7SG";                         // Postcode
            string strContactTel = "01604 567 890";             // Contact Telephone number
            string strShopperEmail = "test@test.com";  // shopper Email
            string strShopperLocale = "en_GB";                  // shopper locale
            string strCurrencyCode = "GBP";                     // CurrecncyCode

            string strAddressline1n2 = strBillHouseNumber + " " + strAd1 + ", " + strAd2;           // Concatenated Address eg 123 Penny Lane Central Areas
            string strCustomerName = strUserTitle + " " + strUserFirstname + " " + strUserSurname;  // Concatenated Customer Name eg Mr Edward Shopper

            string strPaymentAmount = "100";                    // This is 1 pound (100p)
            string strOrderDataRaw = "HDTV - AVTV3000";         // Order description
            string strOrderID = "ORD1234556Y";                  // Order Id     - **needs to be unique**

            //- integration user details - //
            string strPW = "xxxxxx!?";               // Update with the details you entered into back office
            string strPSPID = "epdqxxxxxxx";                      // update with the details of the PSPID you were supplied with


            //- payment design options - '//
            string strTXTCOLOR = "#005588";                             // Page Text Colour
            string strTBLTXTCOLOR = "#005588";                          // Table Text Colour
            string strFONTTYPE = "Helvetica, Arial";                    // fonttype
            string strBUTTONTXTCOLOR = "#005588";                       // Button Text Colour
            string strBGCOLOR = "#d1ecf3";                              // Page Background Colour
            string strTBLBGCOLOR = "#ffffff";                           // Table BG Colour
            string strBUTTONBGCOLOR = "#cccccc";                        // Button Colour
            string strTITLE = "Testing - Secure Payment Page";    // Title
            string strLOGO = "https://www.site.com/logo.png";    // logo location
            string strPMLISTTYPE = "1";                                 // Payment Method List type

            string strALIAS = System.Guid.NewGuid().ToString();
            string strALIASUSAGE = "usage";                                 // ALIAS USAGE
            string strALIASOPERATION = "BYMERCHANT";                                 // ALIAS Operation

            //= create string to hash (digest) using values of options/details above. MUST be in field alphabetical order!
            string plainDigest =
            "AMOUNT=" + strPaymentAmount + strPW +
            "BGCOLOR=" + strBGCOLOR + strPW +
            "BUTTONBGCOLOR=" + strBUTTONBGCOLOR + strPW +
            "BUTTONTXTCOLOR=" + strBUTTONTXTCOLOR + strPW +
            "CN=" + strCustomerName + strPW +
            "COM=" + strOrderDataRaw + strPW +
            "CURRENCY=" + strCurrencyCode + strPW +
            "EMAIL=" + strShopperEmail + strPW +
            "FONTTYPE=" + strFONTTYPE + strPW +
            "LANGUAGE=" + strShopperLocale + strPW +
            "LOGO=" + strLOGO + strPW +
            "ORDERID=" + strOrderID + strPW +
            "OWNERADDRESS=" + strAddressline1n2 + strPW +
            "OWNERCTY=" + strBillCountry + strPW +
            "OWNERTELNO=" + strContactTel + strPW +
            "OWNERTOWN=" + strBillTown + strPW +
            "OWNERZIP=" + strPcde + strPW +
            "PMLISTTYPE=" + strPMLISTTYPE + strPW +
            "PSPID=" + strPSPID + strPW +
            "TBLBGCOLOR=" + strTBLBGCOLOR + strPW +
            "TBLTXTCOLOR=" + strTBLTXTCOLOR + strPW +
            "TITLE=" + strTITLE + strPW +
            "TXTCOLOR=" + strTXTCOLOR + strPW +
            "";

            if (isAlias)
            {
                plainDigest =
                plainDigest +
                "ALIAS=" + strALIAS + strPW +
                "ALIASUSAGE=" + strALIASUSAGE + strPW +
                "ALIASOPERATION=" + strALIASOPERATION + strPW +
                "";
            }

            //Payment
            //-- insert payment details into hidden fields -- //
            AMOUNT.Value = strPaymentAmount;            // PaymentAmmount : (100 pence)
            CN.Value = strCustomerName;                 // Customer Name
            COM.Value = strOrderDataRaw;                // OrderDataRaw (order description)
            CURRENCY.Value = strCurrencyCode;           // CurrecncyCode
            EMAIL.Value = strShopperEmail;              // shopper Email
            FONTTYPE.Value = strFONTTYPE;               // fonttype
            LANGUAGE.Value = strShopperLocale;          // shopper locale
            LOGO.Value = strLOGO;                       // logo location
            ORDERID.Value = strOrderID;                 // *this ORDER ID*
            OWNERADDRESS.Value = strAddressline1n2;     // AddressLine2
            OWNERCTY.Value = strBillCountry;            // Bill Country
            OWNERTELNO.Value = strContactTel;           // Contact Telephone number
            OWNERTOWN.Value = strBillTown;              // Bill Town
            OWNERZIP.Value = strPcde;                   // Postcode
            PMLISTTYPE.Value = strPMLISTTYPE;           // Payment Method List type
            PSPID.Value = strPSPID;                     // *Your PSPID*
            BGCOLOR.Value = strBGCOLOR;                 // Page Background Colour
            BUTTONBGCOLOR.Value = strBUTTONBGCOLOR;     // Button Colour
            BUTTONTXTCOLOR.Value = strBUTTONTXTCOLOR;   // Button Text Colour
            TBLBGCOLOR.Value = strTBLBGCOLOR;           // Table BG Colour
            TBLTXTCOLOR.Value = strTBLTXTCOLOR;         // Table Text Colour
            TITLE.Value = strTITLE;                     // Title
            TXTCOLOR.Value = strTXTCOLOR;               // Page Text Colour

            if (isAlias)
            {
                ALIAS.Value = strALIAS;
                ALIASUSAGE.Value = strALIASUSAGE;
                ALIASOPERATION.Value = strALIASOPERATION;
            }

            SHASign.Value = SHA1HashData(plainDigest);  // Hashed String of plain digest put into sha sign using SHA1HashData function

        }

    }

1 个答案:

答案 0 :(得分:6)

我通过客户服务向Barclaycard epdq找到了我的问题的答案。我希望这有助于其他人。对我来说,答案是在下面的粗体中选择的点。

请参阅以下有关如何纠正错误'未知订单/ 1 / s /'的详细信息:

此错误表示当您将客户从您的网站重定向到ePDQ托管付款页时,ePDQ无法解密与客户发送的SHASIGN HTML表单值。

此错误的典型原因是:

•ePDQ后台办公室配置的SHA-IN密码短语值与用于加密用于创建SHASIGN参数的事务数据的值不匹配(另请确保您将事务发送到正确的ePDQ环境 - 测试或PRODUCTION)

•在服务器端代码中计算SHASIGN时,您没有按字母顺序排列参数

•您没有正确声明某些参数 - 所有参数和值都区分大小写(所有参数名称必须为大写)

•您已设置HASH ALGORITHM值,该值与服务器端脚本中使用的SHA方法不同(例如,您在ePDQ Back Office技术信息设置中配置了SHA-256,但使用的是SHA-1加密过程中的方法)。

•您已在HTML表单中传递了尚未包含在SHA-IN计算中的其他参数/​​值对

有关详细信息,请参阅基本和&amp;位于支持下的ePDQ后台办公室的高级电子商务集成指南 - &gt;整合&amp;用户手册。