예제 #1
0
        public void TestMethod1()
        {
            IAopClient client = GetAlipayClient();
            AlipayMobilePublicMultiMediaDownloadRequest req = new AlipayMobilePublicMultiMediaDownloadRequest();

            string path = "c:/1.jpg";

            if (File.Exists(path))
            {
                File.Delete(path);
            }
            FileStream fs = new FileStream(path, FileMode.CreateNew);

            req.stream = fs;

            string mediaId = "L21pZnMvVDFQV3hYWGJKWFhYYUNucHJYP3Q9YW13ZiZ4c2lnPTU0MzRhYjg1ZTZjNWJmZTMxZGJiNjIzNDdjMzFkNzkw575";

            req.BizContent = "{\"mediaId\":\"" + mediaId + "\"}";

            AlipayMobilePublicMultiMediaDownloadResponse res = client.Execute(req);

            System.Console.WriteLine("-------------公众号菜单查询-------------");

            System.Console.WriteLine("Body:" + res.Body);
            System.Console.ReadLine();
        }
        public void should_send_request_success_with_private_key_from_file()
        {
            //准备客户端参数
            string serverUrl     = "https://openfile.alipay.com/chat/multimedia.do";
            string appId         = "2013092500031084";
            string privateKeyPem = GetPrivateKeyFilePath();

            //通过各个重载构造函数初始化客户端
            List <IAopClient> clients = new List <IAopClient>();

#if NETCOREAPP
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
#endif
            clients.Add(new AlipayMobilePublicMultiMediaClient(serverUrl, appId, privateKeyPem, true, "json", "GBK"));
            clients.Add(new AlipayMobilePublicMultiMediaClient(serverUrl, appId, privateKeyPem, true, "json", "GBK", "1.0", "RSA"));
            clients.Add(new AlipayMobilePublicMultiMediaClient(serverUrl, appId, privateKeyPem, "json", "GBK"));
            clients.Add(new AlipayMobilePublicMultiMediaClient(serverUrl, appId, privateKeyPem, "json", "GBK", "1.0", "RSA"));

            //对每一种构造出的客户端都执行相同的测试
            foreach (IAopClient client in clients)
            {
                //构造request
                AlipayMobilePublicMultiMediaDownloadRequest request = getRequest();

                //执行OpenAPI调用
                AlipayMobilePublicMultiMediaDownloadResponse response = client.Execute(request);

                //断言响应
                Assert.AreEqual(response.Code, "2001");
                Assert.AreEqual(response.Msg, "公众账号信息不存在");

                //释放文件句柄
                request.stream.Close();
            }
        }
        private AopResponse DoGet(AopDictionary parameters, Stream outStream)
        {
            AlipayMobilePublicMultiMediaDownloadResponse result = null;
            string text = serverUrl;

            Console.WriteLine(text);
            if (parameters != null && parameters.Count > 0)
            {
                text = ((!text.Contains("?")) ? (text + "?" + WebUtils.BuildQuery(parameters, charset)) : (text + "&" + WebUtils.BuildQuery(parameters, charset)));
            }
            HttpWebRequest webRequest = webUtils.GetWebRequest(text, "GET");

            webRequest.ContentType = "application/x-www-form-urlencoded;charset=" + charset;
            HttpWebResponse httpWebResponse = (HttpWebResponse)webRequest.GetResponse();

            if (httpWebResponse.StatusCode == HttpStatusCode.OK)
            {
                if (httpWebResponse.ContentType.ToLower().Contains("text/plain"))
                {
                    Encoding encoding         = Encoding.GetEncoding(httpWebResponse.CharacterSet);
                    string   responseAsString = webUtils.GetResponseAsString(httpWebResponse, encoding);
                    IAopParser <AlipayMobilePublicMultiMediaDownloadResponse> aopParser = new AopJsonParser <AlipayMobilePublicMultiMediaDownloadResponse>();
                    result = aopParser.Parse(responseAsString, charset);
                }
                else
                {
                    GetResponseAsStream(outStream, httpWebResponse);
                    result = new AlipayMobilePublicMultiMediaDownloadResponse();
                }
            }
            return(result);
        }
예제 #4
0
        private AopResponse DoGet(AopDictionary parameters, Stream outStream)
        {
            AlipayMobilePublicMultiMediaDownloadResponse response = null;

            var url = serverUrl;

            Console.WriteLine(url);
            if (parameters != null && parameters.Count > 0)
            {
                if (url.Contains("?"))
                {
                    url = url + "&" + WebUtils.BuildQuery(parameters, charset);
                }
                else
                {
                    url = url + "?" + WebUtils.BuildQuery(parameters, charset);
                }
            }

            var req = webUtils.GetWebRequest(url, "GET");

            req.ContentType = "application/x-www-form-urlencoded;charset=" + charset;

            var reqTask = req.GetResponseAsync();

            reqTask.Wait();
            var rsp = (HttpWebResponse)reqTask.Result;

            if (rsp.StatusCode == HttpStatusCode.OK)
            {
                if (rsp.ContentType.ToLower().Contains("text/plain"))
                {
                    //临时
                    var contentType = rsp.ContentType;
                    var charset     = contentType.IndexOf("charset=utf-8", StringComparison.OrdinalIgnoreCase) > 0
                        ? "UTF-8"
                        : "GBK";
                    var encoding = Encoding.GetEncoding(charset);
                    var body     = webUtils.GetResponseAsString(rsp, encoding);
                    IAopParser <AlipayMobilePublicMultiMediaDownloadResponse> tp =
                        new AopJsonParser <AlipayMobilePublicMultiMediaDownloadResponse>();
                    response = tp.Parse(body, charset);
                }
                else
                {
                    GetResponseAsStream(outStream, rsp);
                    response = new AlipayMobilePublicMultiMediaDownloadResponse();
                }
            }
            return(response);
        }
        private AopResponse DoGet(AopDictionary parameters, Stream outStream)
        {
            AlipayMobilePublicMultiMediaDownloadResponse response = null;

            if (string.IsNullOrEmpty(charset))
            {
                charset = "UTF-8";
            }

            string url = this.serverUrl;

            System.Console.WriteLine(url);
            if (parameters != null && parameters.Count > 0)
            {
                if (url.Contains("?"))
                {
                    url = url + "&" + WebUtils.BuildQuery(parameters, charset);
                }
                else
                {
                    url = url + "?" + WebUtils.BuildQuery(parameters, charset);
                }
            }

            HttpWebRequest req = webUtils.GetWebRequest(url, "GET");

            req.ContentType = "application/x-www-form-urlencoded;charset=" + charset;

            HttpWebResponse rsp = (HttpWebResponse)req.GetResponse();

            if (rsp.StatusCode == HttpStatusCode.OK)
            {
                if (rsp.ContentType.ToLower().Contains("text/plain"))
                {
                    Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);
                    string   body     = webUtils.GetResponseAsString(rsp, encoding);
                    IAopParser <AlipayMobilePublicMultiMediaDownloadResponse> tp = new AopJsonParser <AlipayMobilePublicMultiMediaDownloadResponse>();
                    response = tp.Parse(body, charset);
                }
                else
                {
                    GetResponseAsStream(outStream, rsp);
                    response = new AlipayMobilePublicMultiMediaDownloadResponse();
                }
            }
            return(response);
        }
        public void should_send_request_success_with_private_key_from_string()
        {
            //准备客户端参数
            string serverUrl     = "https://openfile.alipay.com/chat/multimedia.do";
            string appId         = "2013092500031084";
            string privateKeyPem = @"MIICXQIBAAKBgQDIgHnOn7LLILlKETd6BFRJ0GqgS2Y3mn1wMQmyh9zEyWlz5p1z
rahRahbXAfCfSqshSNfqOmAQzSHRVjCqjsAw1jyqrXaPdKBmr90DIpIxmIyKXv4G
GAkPyJ/6FTFY99uhpiq0qadD/uSzQsefWo0aTvP/65zi3eof7TcZ32oWpwIDAQAB
AoGBALrKLjBXyRrCFryxA2zyIZBO0TcaZ1T/4UKm/LDNL9hJB6wJOcBuFTQb0MFn
tkLALmOo2DYHQj4EzS+Xy2jp6pMsvCKG63XbU/7d7w1/ejTYxz+MX4ZzG6Ro5Cmb
pY1inbithQIfN3noK0h+PE7lkvOy43mTR4a+ceAtCh3gU2HpAkEA+XMqxbirmuhj
RtHU4+YAOu0fY3JrXA1oErLiF0tJc1HhsWQuMv8v++peku4wWLhpM/8dpiWmf29z
McXBkNNWDQJBAM3ERi014EzIN91Dkdd6Kl4lfXEG62h0f2j5kvJGcZCTWKMLNyt7
pjVYy4RRrrLLZiyGNqSKTzVDoaNWGGrTxoMCQQDavL54+uKfx7+mTkGcRgdVpLCt
h5vU8HyeSPYw7vfNg7Og1fQdC+CLyox70xnZ8ntt+PuKweEqRhSBRKPj1y3RAkAY
jjzFtnE/GIG6MQ8dhOG7fIPc0jOTsptl3qrPqOJym3Lvei4qTUZHhYI8Fzde9PEL
jTTGLA9JzvliMasWTJGbAkB7UviY/ywp0GYCysV2QJZcakk5QZZ9mJwYJOh6hy6f
BJJ8dq1F4aMRNbw/bTZqJuj4mmZUMrpK0JKeRjjFgzJF";

            //通过各个重载构造函数初始化客户端
            List <IAopClient> clients = new List <IAopClient>();

#if NETCOREAPP
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
#endif
            clients.Add(new AlipayMobilePublicMultiMediaClient(serverUrl, appId, privateKeyPem, false, "json", "GBK"));
            clients.Add(new AlipayMobilePublicMultiMediaClient(serverUrl, appId, privateKeyPem, false, "json", "GBK", "1.0", "RSA"));

            //对每一种构造出的客户端都执行相同的测试
            foreach (IAopClient client in clients)
            {
                //构造request
                AlipayMobilePublicMultiMediaDownloadRequest request = getRequest();

                //执行OpenAPI调用
                AlipayMobilePublicMultiMediaDownloadResponse response = client.Execute(request);

                //断言响应
                Assert.AreEqual(response.Code, "2001");
                Assert.AreEqual(response.Msg, "公众账号信息不存在");

                //释放文件句柄
                request.stream.Close();
            }
        }
예제 #7
0
        private async Task <AlipayResponse> DoGetAsync(AlipayDictionary parameters, Stream outStream)
        {
            AlipayMobilePublicMultiMediaDownloadResponse response = null;

            var url = Options.ServerUrl;

            if (parameters != null && parameters.Count > 0)
            {
                if (url.Contains("?"))
                {
                    url = url + "&" + HttpClientEx.BuildQuery(parameters);
                }
                else
                {
                    url = url + "?" + HttpClientEx.BuildQuery(parameters);
                }
            }


            using (var clientResponse = await Client.GetAsync(url))
            {
                if (clientResponse.StatusCode == HttpStatusCode.OK)
                {
                    using (var content = clientResponse.Content)
                    {
                        if (content.Headers.ContentType.ToString().ToLower().Contains("text/plain"))
                        {
                            var body = await content.ReadAsStringAsync();

                            IAlipayParser <AlipayMobilePublicMultiMediaDownloadResponse> tp = new AlipayJsonParser <AlipayMobilePublicMultiMediaDownloadResponse>();
                            response = tp.Parse(body);
                        }
                        else
                        {
                            outStream = await content.ReadAsStreamAsync();

                            response = new AlipayMobilePublicMultiMediaDownloadResponse();
                        }
                    }
                }
            }

            return(response);
        }