簡體   English   中英

ASP.NET使用HttpHandler將數據發布到付款服務

[英]ASP.NET posting data to payment service with HttpHandler

我正在嘗試將一些數據發布到支付服務,並通過和HttpHandler呈現響應。 響應是用戶填寫表格以進行付款。 這是一個Web表單應用程序,因此我不能使用多種表單(我知道您通常可以使用,但是我正在使用的現有代碼使該過程變得很困難。我只有一個鏈接到處理程序,其中包含訂單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; }
        }
    }
}

明顯的第一個問題是付款頁面的所有資源。 對資源的要求是相對的,因此不會被下載。 是否有一些庫或其他功能可以處理此代理問題,我可以使用某些位置標頭還是類似的標頭? 所有建議都表示贊賞?

最后,我被迫重構標記以允許頁面上有多種形式。 完成后,DIBS api確實非常易於使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM