【问题标题】:MasterCard Payment Gateway MIGS, how to query万事达支付网关 MIGS,如何查询
【发布时间】:2016-02-16 14:46:30
【问题描述】:

我已成功将 Asp.net 的万事达卡支付网关 (MIGS) 与 C# 代码集成。但我无法查询每笔交易。我需要查询服务器以获取单个交易。但我无法得到 VPC 客户端指南中提到的正确响应。

我的代码:

            string vpcURL = "https://migs.mastercard.com.au/ma/login.s?mappedUrl=/network";

        try
        {
            DataSet ds = new DataSet();
            byte[] response;
            var data = new NameValueCollection();
            data["vpc_Version"] = "1";
            data["vpc_AccessCode"] = "182F61A1";
            data["vpc_Command"] = "QueryDR";
            data["vpc_Merchant"] = "TEST001110246097";
            data["vpc_MerchTxnRef"] = "1W7sVZAMEuQ4=";
            data["vpc_User"] = "XXXXXXXX";
            data["vpc_Password"] = "XXXXXXXX";
            var redirectUrl = vpcURL + "?" + postData;


            webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
            response= webClient.UploadValues(vpcURL, "POST", data);

            string strresponse = Encoding.UTF8.GetString(response);
            StringReader reader = new StringReader(strresponse);

            ds.ReadXml(reader);

        }
        catch (Exception ex)
        { 

        }

在响应中,我得到一个空白的 html 表单,而不是服务器中提到的预期字段。

我需要一个完整的代码来查询服务器。

谢谢

【问题讨论】:

    标签: c# payment-gateway mastercard


    【解决方案1】:

    你可能很久以前就解决了这个问题,但我最近为此编写了一个工作代码,也许它会对其他人有用

    var args = new SortedDictionary<string, string>()
                {
                    {"vpc_Version", "1"},
                    {"vpc_Command", "queryDR"},
                    {"vpc_MerchTxnRef", MerchTxnRef},
                    {"vpc_AccessCode", "XXXXXX"},
                    {"vpc_Merchant", "XXXXXX"},
                    {"vpc_User", "XXXXX"},
                    {"vpc_Password", "XXXXX"}
                };
                var client = new HttpClient();
                var result = await client.PostAsync("https://migs.mastercard.com.au/vpcdps", new FormUrlEncodedContent(args));
                var reply = await result.Content.ReadAsStringAsync();
    

    我使用 SortedDictionary 是因为参数需要按字母顺序提供。如果您愿意,可以手动对它们进行排序。 我不确定您是否有正确的 URL,也许 2 年前有所不同,请参阅当前的 MIGS 集成指南。 vpc_User 和 vpc_Password 字段需要提供给设置了适当的“高级功能”标志的用户。

    【讨论】:

      猜你喜欢
      • 2017-12-21
      • 2019-08-21
      • 2015-08-18
      • 2011-12-23
      • 2015-03-19
      • 2020-03-22
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      相关资源
      最近更新 更多