событие нажатия кнопки остановлено после новой интеграции - PullRequest
0 голосов
/ 27 февраля 2012

Я внедряю образец кода DPS (http://sec.paymentexpress.com/technical_resources/ecommerce_hosted/pxpay.html) для ASP.Net (C #)), чтобы создать платежный шлюз для моей компании. У меня он работал нормально, отправлял запросы в Payment Express, получал ответы и т. Д., Просто как и должно быть.

Затем я попытался интегрировать его с моей системой. Я добавил некоторые ссылки из своего проекта, дал ему базовый класс для наследования и перенес функцию «поиск / добавление в базу данных» в другой класс.

После всего этого я снова проверил его, и событие нажатия кнопки не срабатывает. Я подумал, что это может быть связано с новым наследованием, поэтому я изменил свою страницу, чтобы наследовать «Страницу» (как это было раньше), но это не помогло.

Функция «поиск / добавление в базу данных» появится позже, поэтому я не думаю, что это как-то связано с ней.

Кто-нибудь знает, что, возможно, пошло не так?

Чтобы уточнить, я говорю, что событие не запускается, потому что я выдал исключение в качестве первой строки в событии, а исключение не выбрасывает. Кнопка, похоже, выполняет обратную передачу.

Вот код:

ASPX:

<%@ Page Language="C#" AutoEventWireup="true" Codebehind="Default.aspx.cs"  
Inherits="PaymentGatewayDPS._Default" enableViewState="false" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org
/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>PxPay .Net 3.5 test page</title>
</head>
<body>
    <form id="form1" runat="server">
    <table style="width: 100%">
    <tr>
        <td>
            Amount
        </td>
        <td>
            <asp:TextBox ID="txtAmountInput" runat="server"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            Currency
        </td>
        <td>
            <asp:TextBox ID="txtCurrencyInput" runat="server"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            Reference
        </td>
        <td>
            <asp:TextBox ID="txtMerchantReference" runat="server"></asp:TextBox>
        </td>
    </tr>
    <tr>
        <td>
            Transaction type
        </td>
        <td>
            <asp:DropDownList ID="ddlTxnType" runat="server">
                <asp:ListItem Selected="True">Purchase</asp:ListItem>
                <asp:ListItem Value="Auth">Authorisation</asp:ListItem>
            </asp:DropDownList>
        </td>
    </tr>
    <tr>
        <td>
            &nbsp;
        </td>
        <td>
            <asp:Button ID="Button1" runat="server" Text="Submit"
OnClick="Button1_Click"/>
        </td>
    </tr>
</table>
<asp:Panel ID="Panel1" runat="server">
</asp:Panel>
<asp:Literal id="LitTest" runat="server"/>
</form>
</body>
</html>

Начало моего кода C #:

namespace PaymentGatewayDPS
{
public partial class _Default : TCInsuredQuoteBase
{

Событие My Button:

protected void Button1_Click(object sender, EventArgs e)
    {
        throw new Exception("button clicked");
        string PxPayUserId = ConfigurationManager.AppSettings["PxPayUserId"];
        string PxPayKey = ConfigurationManager.AppSettings["PxPayKey"];

        PxPay WS = new PxPay(PxPayUserId, PxPayKey);

        RequestInput input = new RequestInput();

        input.AmountInput = txtAmountInput.Text;
        input.CurrencyInput = txtCurrencyInput.Text;
        input.MerchantReference = txtMerchantReference.Text;
        input.TxnType = ddlTxnType.Text;
        input.UrlFail = Request.Url.GetLeftPart(UriPartial.Path);
        input.UrlSuccess = Request.Url.GetLeftPart(UriPartial.Path);

        // TODO: GUID representing unique identifier for the transaction within the shopping cart (normally would be an order ID or similar)
        Guid orderId = Guid.NewGuid();
        input.TxnId = orderId.ToString();
        throw new Exception("about to Generate Request");

        RequestOutput output = WS.GenerateRequest(input);

        if (output.valid == "1")
        {
            // Redirect user to payment page
            Response.Redirect(output.Url);
        }
    }

1 Ответ

0 голосов
/ 28 февраля 2012

Я нашел проблему!Это было что-то особенное для ДПС.Я изменил идентификатор транзакции на более чем 16 символов, и запрос не удался.Я просто не мог видеть, что это происходит, поэтому мне потребовалось так много времени, чтобы найти.Спасибо за ваши предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...