Как интегрировать мой сайт Umbraco с Worldpay

Мне нужно подключить мой веб-сайт Umbraco к моей учетной записи Worldpay. Я нашел несколько статей об этом, но, поскольку все это для меня ново, мне нужен простой и понятный образец. Я следил за этой статьей, но пока не знаю, как связать мои пользовательские элементы управления (платежные формы) с мировая плата.

Любая помощь будет оценена по достоинству.

@Digbyswift: я попробовал ваше решение, и все еще не увенчался успехом! Я был бы признателен, если бы вы могли взглянуть и сообщить мне, в чем проблема в моем коде:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LoadForm.ascx.cs" Inherits="BInstitute.usercontrols.LoadForm" %>

<form action="https://secure-test.worldpay.com/wcc/purchase" name="BuyForm" method="POST" >
<input type="hidden" name="instId"  value= "<% = this.instId %>" ><!-- The "instId" value "211616" should be replaced with the Merchant's own installation Id -->
<input type="hidden" name="cartId" value="abc123"  ><!-- This is a unique identifier for merchants use. Example: PRODUCT123 -->
<input type="hidden" name="currency" value="GBP" ><!-- Choose appropriate currency that you would like to use -->
<input type="hidden" name="amount" value="<% = this.amount %>">
<input type="hidden" name="desc" value="<% = this.desc %>" >
<input type="hidden" name="testMode" value="100"  >
<div id="MembershipForm" runat="server" visible="False">


    <table>
       <tr>
            <td width="25%" >
                <asp:Label ID="lblMembershipSurname" runat="server"></asp:Label>
            </td>
            <td >
                <asp:TextBox ID="txtMembershipSurname" runat="server" Class="textblock"></asp:TextBox>
            </td>
        </tr>

        <tr>
            <td width="25%" >
                <asp:Label ID="lblMembershipAddressLine1" runat="server"></asp:Label>
            </td>
            <td >
                <asp:TextBox ID="txtMembershipAddressLine1" runat="server" Class="textblock"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td width="25%" >
                <asp:Label ID="lblMembershipAddressLine2" runat="server"></asp:Label>
            </td>
            <td >
                <asp:TextBox ID="txtMembershipAddressLine2" runat="server" Class="textblock"></asp:TextBox>
            </td>

        </tr>

        <tr>
            <td width="25%" >
                <asp:Button ID="btnMembershipSubmit" runat="server"  PostBackUrl="https://secure-test.worldpay.com/wcc/purchase" Class="btn_submit"/>
            </td>
            <td >
                &nbsp;</td>

        </tr>
        </table>

</div>

</form>

И исходный код бэкэнда:

public partial class LoadForm : System.Web.UI.UserControl
    {
        private string _instId = "288499";
        private string _cartId = "Test";
        private string _currency = "GBP";
        private string _testMode = "100";
        private string _amount = "10";
        private string _desc = "testDesc";

        public string desc
        {
            get { return _desc; }
            set { _desc = value; }
        }

        public string amount
        {
            get { return _amount; }
            set { _amount = value; }
        }

        public string instId
        {
            get { return _instId; }
            set { _instId = value; }
        }

        public string cartId
        {
            get { return _cartId; }
            set { _cartId = value; }
        }

        public string currency
        {
            get { return _currency; }
            set { _currency = value; }
        }

        public string testMode
        {
            get { return _testMode; }
            set { _testMode = value; }
        }

}

person amir moradifard    schedule 22.07.2013    source источник


Ответы (1)


Первое, что вы должны рассмотреть, это то, как вы обычно подключаете WorldPay к веб-сайту .Net. Тот факт, что ваш сайт основан на Umbraco, не должен усложнять ситуацию.

Найдите пару статей, описывающих интеграцию в стандартный веб-сайт .Net, и посмотрите, будут ли эти подходы работать с вашим веб-сайтом. Единственным усложняющим фактором может быть определение страницы «обратного вызова», но в худшем случае вы можете просто использовать жестко закодированный URL-адрес.

Многие подобные вопросы предполагают, что Umbraco усложняет хорошо документированные задачи. Но, как правило, сайт Umbraco — это просто пользовательские элементы управления и мастер-страницы или представления и действия.

Если вы хотите, чтобы конфигурация Worldpay редактировалась в Umbraco, это совсем другой вопрос.

person Digbyswift    schedule 23.07.2013
comment
Спасибо за ваш ответ. Пожалуйста, ознакомьтесь с этой статьей: worldpay.com/support/kb/ bg/htmlredirect/rhtml5206.html Для этого есть примеры HTML-кодов. Но проблема в том, что Umbraco автоматически меняет ID элементов ввода, и поэтому Worldpay не может распознать значения в этих скрытых элементах ввода (instId, cartId и т. д.). Есть предложения по этому поводу? - person amir moradifard; 23.07.2013
comment
Зачем Umbraco менять идентификаторы? Я думаю, вы имеете в виду, что .Net изменяет значения идентификатора, потому что вы, возможно, используете элементы управления .Net в пользовательском элементе управления. Вы можете обойти это, используя ClientIDMode="Static" в своих элементах управления, если вы используете .Net 4. Если нет, просто используйте статическую разметку и визуализируйте значения поля с помощью привязок, например. <input type="hidden" name="instId" value="<% = this.WorldPayId %>"> - person Digbyswift; 23.07.2013
comment
Извините, и да, я имел в виду .Net. Я тоже попробовал ваше решение. но все еще вижу страницу с ошибкой. Я обновил вопрос своим кодом. Не могли бы вы помочь мне с этим? - person amir moradifard; 23.07.2013
comment
Я нашел проблему. Значение действия для основной Формы должно быть изменено на secure-test.worldpay.com/wcc/purchase Спасибо DigbySwift. - person amir moradifard; 23.07.2013