Создание псевдонима с использованием платежной карты barclaycard epdq - неизвестный заказ /1/s/

Ниже приведен код, используемый для создания псевдонима, который не работает и выдает ошибку "неизвестный порядок /1/s/". Тот же код работает для оплаты, если я удаляю код для Alias. Не уверен, что мне не хватает? Я мог бы войти в учетную запись epdq barclaycard и увидеть ошибку "неизвестный порядок /1/s/". Я также могу создать псевдоним вручную через учетную запись epdq, но просто не могу попасть на страницу 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 ответ

Решение

Я нашел ответ на свой вопрос через службу поддержки клиентов Barclaycard epdq. Я надеюсь, что это помогает другим. Для меня ответ - точка, выделенная жирным шрифтом ниже.

Ниже приведены подробные сведения о том, как исправить ошибку "неизвестный порядок /1/s/":

Эта ошибка означает, что ePDQ не удалось расшифровать значение HTML-формы SHASIGN, отправленное клиенту, когда вы перенаправляете их со своего веб-сайта на страницу размещенного платежа ePDQ.

Типичные причины этой ошибки:

• Значение парольной фразы SHA-IN, настроенное в бэк-офисе ePDQ, не соответствует значению, которое вы использовали для шифрования данных транзакций, использованных для создания параметра SHASIGN (также убедитесь, что вы отправляете транзакции в правильную среду ePDQ - TEST или PRODUCTION)

• Вы не упорядочили параметры в алфавитном порядке при расчете SHASIGN в своем коде на стороне сервера

• Вы неправильно указали некоторые параметры - все параметры и значения чувствительны к регистру (все имена параметров должны быть в верхнем регистре)

• Вы установили значение HASH ALGORITHM, отличное от метода SHA, используемого в сценарии на стороне сервера (например, вы настроили SHA-256 в настройках технической информации ePDQ Back Office, но используете метод SHA-1 в своем процесс шифрования).

• Вы передали дополнительные пары параметр / значение в форму HTML, которые не были включены в вычисление SHA-IN

Дополнительную информацию см. В руководствах по базовой и расширенной интеграции электронной коммерции, расположенных в бэк-офисе ePDQ, в разделе "Поддержка" -> "Интеграция и руководства пользователя".

Другие вопросы по тегам