Asp.net mvc 如何为其他支付网关定制NOP商务插件

Asp.net mvc 如何为其他支付网关定制NOP商务插件,asp.net-mvc,plugins,nopcommerce,Asp.net Mvc,Plugins,Nopcommerce,我想为其他支付网关(Easy Pay)定制nopCommerce插件。我更改了付款URL和参数 public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest) { var strPost = "storeId=" + _eWayHostedPaymentSettings.CustomerId; strPost += Format("amount", postProcessPa

我想为其他支付网关(Easy Pay)定制nopCommerce
插件。我更改了付款URL和参数

public void PostProcessPayment(PostProcessPaymentRequest postProcessPaymentRequest)
{

    var strPost = "storeId=" + _eWayHostedPaymentSettings.CustomerId;
    strPost += Format("amount", postProcessPaymentRequest.Order.OrderTotal.ToString("0.00", CultureInfo.InvariantCulture));
    strPost += Format("orderRefNum", postProcessPaymentRequest.Order.Id.ToString());

    strPost += Format("postBackURL", "http://www.smmotors.org/onepagecheckout");

    var url = _eWayHostedPaymentSettings.PaymentPage + "?" + strPost;

    var objRequest = (HttpWebRequest)WebRequest.Create(url);
    objRequest.Method = WebRequestMethods.Http.Get;

    var objRequest1 = (HttpWebRequest)WebRequest.Create(url);
    objRequest1.Method = WebRequestMethods.Http.Post;

    var objResponse = (HttpWebResponse)objRequest.GetResponse();
此时
Easypay
服务器将名为
auth_token
的参数发送回作为GET参数发送的
postbackURL

但是
Var objResponse
无法获取
auth_令牌
&
postBackURL
。原因和解决办法是什么

    //get the response from the transaction generate page
    string resultXml;

    using (var sr = new StreamReader(objResponse.GetResponseStream()))        
    {
        resultXml = sr.ReadToEnd();
        // Close and clean up the StreamReader
        sr.Close();
    }

    //parse the result message
    var resultObj = ParseRequestResults(resultXml);

    if (resultObj.Result)
    {
        //redirect the user to the payment page
        HttpContext.Current.Response.Redirect(resultObj.Uri);
    }
    else
    {
        throw new NopException(resultObj.Error);
    }
}
下面是插件集成步骤:

商户将遵循以下流程在其店铺中嵌入
Easypay
插件:

•商户通过
Easypay
代理获得账户。成功注册后,将向商户发送包含唯一店铺ID和URL的欢迎电子邮件

•商户登录Easy Pay门户并访问“集成指南”菜单,在该菜单中,商户将逐步获得将
Easypay
插件集成到其购物车/在线零售商店的说明

以下是商户登录
Easypay
门户后应该找到的流量示例

具有唯一店铺ID的商户在其在线商店/网站的结账页面上嵌入了Easypay
插件。这将集成“通过
Easypay
支付”作为其网站中的支付解决方案。集成
Easypay
插件是一个简单的两步过程:

  • 商户需要将以下参数发布到f o l owi n g URL上的
    Easypay
  • 生产(生活)环境: 沙箱环境:

    成功重定向后,客户将进入Easypay Checkout屏幕,其中有一张关于交易信息的表格需要填写

  • 在完成步骤1中的表单后,客户将按下“继续”按钮,并以第一步中postbackURL变量中给出的相同URL返回商户网站。这将是商户网站上的确认屏幕,用于在Easypay和商户网站之间执行握手。Easypay发回一个参数er将auth_令牌命名为postbackURL,该URL作为GET参数发送。现在,商户需要将以下两个参数再次发布回以下URL:
  • 生产(生活)环境: 沙箱环境: •认证令牌 •postBackURL

    在该重定向之后,Easypay使用其在上一步中拥有的身份验证令牌对商户发送的身份验证令牌进行身份验证,并且在成功身份验证后,它将使客户进入成功结帐屏幕,并将以下两个变量发送回第二个postBackURL: •地位 •描述 •订单参考号

    NET的示例代码段

    对于第一个重定向:

        using (var client = new HttpClient())
        {
    var values = new List<KeyValuePair<string, string>>(); 
    values.Add(new KeyValuePair<string, string>("storeId", "43")); 
    values.Add(new KeyValuePair<string, string>("amount", "10"));
    values.Add(new KeyValuePair<string, string>("postBackURL", "http://www.my.onlinestore.com/transaction/MessageHandler"));
    
    values.Add(new KeyValuePair<string, string>("orderRefNum", "1101")); 
    
    var content = new FormUrlEncodedContent(values);
    var response = await client.PostAsync("https://easypay.easypaisa.com.pk/easypay/Index.jsf", content); var responseString = await response.Content.ReadAsStringAsync();
    
        }
    
       using (var client = new HttpClient())
       {
    var values = new List<KeyValuePair<string, string>>();
    values.Add(new KeyValuePair<string, string>("auth_token", Request.Querystring["auth_token"])); values.Add(new KeyValuePair<string, string>("postBackURL", "http://www.my.online-
    store.com/transaction/MessageHandler1"));
    var content = new FormUrlEncodedContent(values);
    var response = await client.PostAsync("https://easypay.easypaisa.com.pk/easypay/Confirm.jsf", content); var responseString = await response.Content.ReadAsStringAsync();
       }
    
    使用(var-client=new-HttpClient())
    {
    var值=新列表();
    添加(新的KeyValuePair(“storeId”,“43”));
    添加(新的KeyValuePair(“金额”,“10”));
    添加(新的KeyValuePair(“postBackURL”),“http://www.my.onlinestore.com/transaction/MessageHandler"));
    添加(新的KeyValuePair(“orderRefNum”、“1101”);
    var内容=新的FormUrlEncodedContent(值);
    var response=wait client.PostAsync(“https://easypay.easypaisa.com.pk/easypay/Index.jsf,content);var responseString=await response.content.ReadAsStringAsync();
    }
    
    对于第二个重定向:

        using (var client = new HttpClient())
        {
    var values = new List<KeyValuePair<string, string>>(); 
    values.Add(new KeyValuePair<string, string>("storeId", "43")); 
    values.Add(new KeyValuePair<string, string>("amount", "10"));
    values.Add(new KeyValuePair<string, string>("postBackURL", "http://www.my.onlinestore.com/transaction/MessageHandler"));
    
    values.Add(new KeyValuePair<string, string>("orderRefNum", "1101")); 
    
    var content = new FormUrlEncodedContent(values);
    var response = await client.PostAsync("https://easypay.easypaisa.com.pk/easypay/Index.jsf", content); var responseString = await response.Content.ReadAsStringAsync();
    
        }
    
       using (var client = new HttpClient())
       {
    var values = new List<KeyValuePair<string, string>>();
    values.Add(new KeyValuePair<string, string>("auth_token", Request.Querystring["auth_token"])); values.Add(new KeyValuePair<string, string>("postBackURL", "http://www.my.online-
    store.com/transaction/MessageHandler1"));
    var content = new FormUrlEncodedContent(values);
    var response = await client.PostAsync("https://easypay.easypaisa.com.pk/easypay/Confirm.jsf", content); var responseString = await response.Content.ReadAsStringAsync();
       }
    
    使用(var-client=new-HttpClient())
    {
    var值=新列表();
    values.Add(新的KeyValuePair(“auth_token”,Request.Querystring[“auth_token”]);values.Add(新的KeyValuePair(“postBackURL”),”http://www.my.online-
    store.com/transaction/MessageHandler1”);
    var内容=新的FormUrlEncodedContent(值);
    var response=wait client.PostAsync(“https://easypay.easypaisa.com.pk/easypay/Confirm.jsf,content);var responseString=await response.content.ReadAsStringAsync();
    }