【问题标题】:How to integrate my Umbraco site with Worldpay如何将我的 Umbraco 网站与 Worldpay 集成
【发布时间】:2013-07-21 14:39:52
【问题描述】:

我需要将我的 Umbraco 网站连接到我的 Worldpay 帐户。 我发现了几篇关于此的文章,但由于这对我来说都是新的,我需要一个简单明了的示例。 我关注了这个Article,但不知道如何将我的用户控件(支付表单)连接到世界支付。

任何帮助将不胜感激。

@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; }
        }

}

【问题讨论】:

    标签: c# asp.net umbraco worldpay


    【解决方案1】:

    您应该考虑的第一件事是通常如何将 WorldPay 连接到 .Net 网站。您的网站是基于 Umbraco 的这一事实并不会使事情复杂化。

    查找几篇描述集成到标准 .Net 网站的文章,看看这些方法是否适用于您的网站。唯一复杂的因素可能是定义一个“回调”页面,但在最坏的情况下,您只能使用硬编码的 URL。

    许多类似这样的问题都假设 Umbraco 会使原本有据可查的任务复杂化。但通常 Umbraco 网站仍然只是用户控件和母版页或视图和操作。

    如果您想让 Worldpay 配置在 Umbraco 中可编辑,那完全是另一个问题。

    【讨论】:

    • 感谢您的回复。请看这篇文章:worldpay.com/support/kb/bg/htmlredirect/rhtml5206.html 有示例 HTML 代码。但问题是 Umbraco 会自动更改输入项的 ID,因此 Worldpay 无法识别这些隐藏输入项(instId、cartId 等)中的值对此有何建议?
    • 为什么 Umbraco 会更改 ID?我认为您的意思是 .Net 更改了 ID 值,因为您可能在用户控件中使用 .Net 控件。如果您使用的是 .Net 4,则可以通过在控件上使用 ClientIDMode="Static" 来解决此问题。如果没有,只需使用静态标记并使用绑定呈现字段的值,例如&lt;input type="hidden" name="instId" value="&lt;% = this.WorldPayId %&gt;"&gt;
    • 对不起,是的,我的意思是 .Net 我也尝试了您的解决方案。但仍然看到错误页面。我已经用我的代码更新了这个问题。你能帮我解决这个问题吗?
    • 我发现了问题。主窗体的操作值应更改为secure-test.worldpay.com/wcc/purchaseThanks DigbySwift。
    猜你喜欢
    • 2017-03-23
    • 2023-04-09
    • 2011-09-25
    • 2010-12-25
    • 1970-01-01
    • 2021-07-24
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多