0

我正在尝试将一些数据发布到支付服务并通过 and 呈现响应HttpHandler。响应是用户填写以进行付款的表格。这是一个网络表单应用程序,所以我不能使用多个表单(我知道你一般可以,但我正在处理的现有代码很难。我只有一个链接到带有订单 ID 的处理程序请求参数。

我什至不确定我在这里尝试做的是一个好主意,或者甚至会成功。如果您有更好的想法,请告诉我。这是我到目前为止的代码:

using System.Net;
using System.Text;
using System.Web;

namespace Web
{
    public class Begin_invoice : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            var orderNumber = context.Request.QueryString["invoice-numer"];

            //todo: get some extra data from local service here

            var URI = "https://somepaymetservice/start.action";

            var data = new StringBuilder();

            data.Append("merchant=" + HttpUtility.UrlEncode("666111") + "&");
            data.Append("amount=" + HttpUtility.UrlEncode("1") + "&");
            data.Append("lang=" + HttpUtility.UrlEncode("sv") + "&");
            data.Append("currency=" + HttpUtility.UrlEncode("752") + "&");
            data.Append("orderid=" + HttpUtility.UrlEncode(orderNumber) + "&");
            data.Append("accepturl=" + HttpUtility.UrlEncode("http://localhost:50113/Complete-invoice.ashx") + "&");
            data.Append("test=" + HttpUtility.UrlEncode("1") + "&");

            using (var client = new WebClient())
            {
                client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
                var response = client.UploadString(URI, data.ToString());

                context.Response.Write(response);
            }
        }

        public bool IsReusable
        {
            get { return false; }
        }
    }
}

显而易见的第一个问题是支付页面的所有资源。资源的 URL 是相对的,因此它们不会被下载。是否有一些库或其他功能可以处理这个代理的东西,我可以使用一些位置标题或类似的东西吗?所有建议都受到赞赏?

4

1 回答 1

0

最后,我被迫重构我的标记以允许一个页面上有多个表单。一旦完成,DIBS api 就非常易于使用。

于 2013-07-03T11:21:27.107 回答