首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MasterCard支付网关MIGS,如何查询

MasterCard支付网关MIGS,如何查询
EN

Stack Overflow用户
提问于 2015-11-15 20:11:39
回答 1查看 1.6K关注 0票数 2

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

我的代码:

代码语言:javascript
复制
            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表单,而不是服务器中提到的预期字段。

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

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-05-19 16:08:23

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

代码语言:javascript
复制
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字段,并设置适当的“高级功能”标志。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33719526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档