我尝试将某些数据发布到付款服务并通过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; }
}
}
}
显而易见的第一个问题是付款页面的所有资源。资源的网址是相对的,因此无法下载。是否有一些库或其他功能可以处理这个代理的东西,我可以使用一些位置标题或类似的东西吗?所有建议都表示赞赏?
答案 0 :(得分:0)
最后我被迫重构我的标记以允许页面上有多个表单。一旦完成,DIBS api非常容易使用。