Пример #1
0
        public async Task <object> ApplyMent()
        {
            HttpClient client = new HttpClient();

            var applyment = new ApplyMentDto();

            applyment.BusinessCode = "X00000000001";
            applyment.ContactInfo  = new ApplyMentContactInfoDto()
            {
                ContactName = "张三",
                // OpenId = "1312321",
                ContactIdNumber = "511111111111111111",
                MobilePhone     = "13333333333",
                ContactEmail    = "*****@*****.**",
            };

            applyment.SubjectInfo = new ApplyMentSubjectInfo()
            {
                SubjectType         = "SUBJECT_TYPE_INDIVIDUAL",
                BusinessLicenseInfo = new ApplyMentBusinessLicenseInfo()
                {
                    LicenseCopy   = "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk",
                    LicenseNumber = "91440300MA5EYUKH2K",
                    MerchantName  = "张三餐饮店",
                    LegalPerson   = "张三"
                },
                IdentityInfo = new ApplyMentIdentityInfo()
                {
                    IdDocType  = "IDENTIFICATION_TYPE_IDCARD",
                    IdCardInfo = new ApplyMentIdCardInfo()
                    {
                        IdCardCopy      = "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk",
                        IdCardNational  = "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk",
                        IdCardName      = "张三",
                        IdCardNumber    = "511111111111111111",
                        CardPeriodBegin = "2010-01-01",
                        CardPeriodEnd   = "长期",
                    },
                    Owner = true
                },
            };

            applyment.BusinessInfo = new ApplyMentBusinessInfo()
            {
                MerchantShortName = "张三餐饮店",
                ServicePhone      = "13333333333",
                SalesInfo         = new ApplyMentSalesInfo()
                {
                    SalesScenesType = new List <string>()
                    {
                        "SALES_SCENES_STORE"
                    },
                    BizStorInfo = new ApplyMentBizStorInfo()
                    {
                        BizStoreName     = "张三餐饮店",
                        BizAddressCode   = "440305",
                        BizStoreAddress  = "南山区xx大厦x层xxxx室",
                        StoreEntrancePic = new List <string>()
                        {
                            "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk"
                        },
                        IndoorPic = new List <string>()
                        {
                            "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk"
                        }
                    }
                }
            };

            applyment.SettlementInfo = new ApplyMentSettlementInfo()
            {
                SettlementId      = "719",
                QualificationType = "餐饮",
                Qualifications    = new List <string>()
                {
                    "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk"
                },
                ActivitiesAdditions = new List <string>(),
            };

            string publicKeyStr = @"
MIID9jCCAt6gAwIBAgIUTx7IYrSYLGnDvK40/E02coyFez4wDQYJKoZIhvcNAQEL
BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg
Q0EwHhcNMjAwNjAxMDIxNTM4WhcNMjUwNTMxMDIxNTM4WjCBhzETMBEGA1UEAwwK
MTU5NjQ2MjYwMTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMTMwMQYDVQQL
DCrph43luobmsYflmInml7bku6PnlLXlrZDllYbliqHmnInpmZDlhazlj7gxCzAJ
BgNVBAYMAkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAK56vu6O9vBB+MOg8MLmT3qg16ICErXoHgRklfWK/bFql9p5
WVMcTddRCZbewVxmTswLfNAreqPlJWtWQPjV2D8p0qhbHnz07vkybeqEqX2epHaO
2HTuu4ASTd1spE1tLUm+telrWssOz/LuQ3N2h6EXK16SlNsLBW+GBEVgbrkQIz8k
TqAe/ZOk5ywO2/PYP4x15LiXddGCJB+SG1F1E/n2bBr7AjsE1YimEcxtBD0puX9+
TGUiyMzlFl0snaKXoNhx4F6JMtfYilaiK1zmwNmmfA1h9lVAS78lQAtflTgEr0gn
AlG8ruUo9JNdikLhH5fGvUKcIV3Qgt/2XJQwKfMCAwEAAaOBgTB/MAkGA1UdEwQC
MAAwCwYDVR0PBAQDAgTwMGUGA1UdHwReMFwwWqBYoFaGVGh0dHA6Ly9ldmNhLml0
cnVzLmNvbS5jbi9wdWJsaWMvaXRydXNjcmw/Q0E9MUJENDIyMEU1MERCQzA0QjA2
QUQzOTc1NDk4NDZDMDFDM0U4RUJEMjANBgkqhkiG9w0BAQsFAAOCAQEABy+maotA
Ye2//1fwzrFirwAaduzVY+HINd8gzhj59YpYMaB2QQ1pm6gLutNpRsjqUYvYyAEi
Cbd0J1MI5XhlE+hJn9zzqvivXgW9ySHPcE4dbUzsj0rAtCn3/8KrDI3oK25tMHll
gmuN720WQu+Q3FZ+wif4exYUwuHO0+yrqqg3KrP4ReU/O5c3VjxFu/YKLyTCajXc
dgOnXMjvxbTmum3PZdRH2Biu9LXLcy/1PDPpSqTEJ7Clh6gs0ARRzmXVP38tTMfw
W5ZvS0R4mIlA5C5cjc7WEtijNh4coYEpaloNBGRnnYi6tkfpgPWKDThorrbnfTtC
7IX2aTdgjG+b8g==
";

            applyment.Encrypt(Encoding.UTF8.GetBytes(publicKeyStr));

            // var jsonStr = JsonConvert.SerializeObject(applyment);

            var jsonStr = JsonSerializer.Serialize(applyment);

            var mchid     = _configuration.GetValue <string>("WxPay:MchId");
            var serial_no = _configuration.GetValue <string>("WxPay:SerialNo");

            var nonce_str = Guid.NewGuid().ToString();

            TimeSpan ts        = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
            var      timestamp = Convert.ToInt64(ts.TotalSeconds).ToString();

            var path = _hostEnvironment.ContentRootPath + _configuration.GetValue <string>("WxPay:CertPath");

            //var signature = SignUtil.GetSign("POST", "/v3/applyment4sub/applyment", nonce_str, jsonStr, path
            //	, _configuration.GetValue<string>("WxPay:CertPwd"));

            //var authorization =
            //	$"mchid=\"{mchid}\",serial_no=\"{serial_no}\",nonce_str=\"{nonce_str}\",timestamp=\"{timestamp}\",signature=\"{signature}\"";
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/");

            request.Content = new StringContent(jsonStr, Encoding.UTF8, "application/json");

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("WECHATPAY2-SHA256-RSA2048", await BuildAuthAsync(request, mchid, serial_no, nonce_str));

            // var serialNo = _configuration.GetValue<string>("WxPay:SerialNo");
            client.DefaultRequestHeaders.Add("Wechatpay-Serial", "7796A62C45F1F83B0B8F5ED5989DE9125D74BD34");
            client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            // client.DefaultRequestHeaders.Add("Content-Type", "application/json");
            // client.DefaultRequestHeaders.

            // var response = await client.PostAsync(new Uri("https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/"), byteContent);

            var response = await client.SendAsync(request);

            var result = await response.Content.ReadAsStringAsync();

            if (response.StatusCode != HttpStatusCode.OK)
            {
                //logger.Error($"GetAsync End, url:{url}, HttpStatusCode:{response.StatusCode}, result:{result}");
                // return new T();
            }

            return(null);
        }
Пример #2
0
        public async Task <object> ApplyMent()
        {
            var nonce = GenerateNonce();

            #region  入数据

            var applyment = new ApplyMentDto();
            applyment.BusinessCode = "X00000000001";
            applyment.ContactInfo  = new ApplyMentContactInfoDto()
            {
                ContactName = "张三",
                // OpenId = "1312321",
                ContactIdNumber = "511111111111111111",
                MobilePhone     = "13333333333",
                ContactEmail    = "*****@*****.**",
            };
            applyment.SubjectInfo = new ApplyMentSubjectInfo()
            {
                SubjectType         = "SUBJECT_TYPE_INDIVIDUAL",
                BusinessLicenseInfo = new ApplyMentBusinessLicenseInfo()
                {
                    LicenseCopy   = "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk",
                    LicenseNumber = "91440300MA5EYUKH2K",
                    MerchantName  = "张三餐饮店",
                    LegalPerson   = "张三"
                },
                IdentityInfo = new ApplyMentIdentityInfo()
                {
                    IdDocType  = "IDENTIFICATION_TYPE_IDCARD",
                    IdCardInfo = new ApplyMentIdCardInfo()
                    {
                        IdCardCopy      = "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk",
                        IdCardNational  = "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk",
                        IdCardName      = "张三",
                        IdCardNumber    = "511111111111111111",
                        CardPeriodBegin = "2010-01-01",
                        CardPeriodEnd   = "长期",
                    },
                    Owner = true
                },
            };
            applyment.BusinessInfo = new ApplyMentBusinessInfo()
            {
                MerchantShortName = "张三餐饮店",
                ServicePhone      = "13333333333",
                SalesInfo         = new ApplyMentSalesInfo()
                {
                    SalesScenesType = new List <string>()
                    {
                        "SALES_SCENES_STORE"
                    },
                    BizStorInfo = new ApplyMentBizStorInfo()
                    {
                        BizStoreName     = "张三餐饮店",
                        BizAddressCode   = "440305",
                        BizStoreAddress  = "南山区xx大厦x层xxxx室",
                        StoreEntrancePic = new List <string>()
                        {
                            "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk"
                        },
                        IndoorPic = new List <string>()
                        {
                            "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk"
                        }
                    }
                }
            };
            applyment.SettlementInfo = new ApplyMentSettlementInfo()
            {
                SettlementId      = "719",
                QualificationType = "餐饮",
                Qualifications    = new List <string>()
                {
                    "tV7icXfN8VX58X0D187-NV08cFGRlx6LPg261cpQDI-asaq-0MXen3N7OVE5lDbStaS8nBBbBlv6hL3er8bDK-djRp4PtWGArfr9Numqxsk"
                },
                ActivitiesAdditions = new List <string>(),
            };
            applyment.Encrypt(GetPublicCertificate().PublicKey.Key as RSA);

            #endregion  入数据

            var jsonContent = JsonConvert.SerializeObject(applyment);             //.Serialize(applyment);

            var httpHandler = new HttpHandler(_mchId, _serialNo, GetPublicCertificate().SerialNumber, GetPrivateCertificate(), GetMerchantCertificate());
            var client      = new HttpClient(httpHandler);

            var request = new HttpRequestMessage(HttpMethod.Post,
                                                 "https://api.mch.weixin.qq.com/v3/applyment4sub/applyment/")
            {
                Content = new StringContent(jsonContent, Encoding.UTF8, "application/json")
            };

            var response = await client.SendAsync(request);

            var result = await response.Content.ReadAsStringAsync();

            if (response.StatusCode != HttpStatusCode.OK)
            {
            }

            return(string.Empty);
        }