public void PrimaryHandler(WeChatPayOptions options, WeChatPaySignType signType, WeChatPayDictionary sortedTxtParams) { sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId); sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.Key, signType)); }
public void PrimaryHandler(WeChatPayDictionary sortedTxtParams, WeChatPayOptions options) { sortedTxtParams.Add(WeChatPayConsts.appid, options.AppId); sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId); sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.APIKey, signType)); }
public void PrimaryHandler(WeChatPayDictionary sortedTxtParams, WeChatPayOptions options) { sortedTxtParams.Add(WeChatPayConsts.timeStamp, WeChatPayUtility.GetTimeStamp()); sortedTxtParams.Add(WeChatPayConsts.nonceStr, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.signType, signType.ToString()); sortedTxtParams.Add(WeChatPayConsts.paySign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.APIKey, signType)); }
public void PrimaryHandler(WeChatPayOptions options, WeChatPayDictionary sortedTxtParams) { sortedTxtParams.Add(WeChatPayConsts.noncestr, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.timestamp, WeChatPayUtility.GetTimeStamp()); sortedTxtParams.Add(WeChatPayConsts.appid, options.AppId); sortedTxtParams.Add(WeChatPayConsts.partnerid, options.MchId); sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.Key, WeChatPaySignType.MD5)); }
public void PrimaryHandler(WeChatPayOptions options, WeChatPaySignType signType, WeChatPayDictionary sortedTxtParams) { sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId); if (signType == WeChatPaySignType.HMAC_SHA256) { sortedTxtParams.Add(WeChatPayConsts.sign_type, WeChatPayConsts.HMAC_SHA256); } }
public void PrimaryHandler(WeChatPayDictionary sortedTxtParams, WeChatPayOptions options) { sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId); if (string.IsNullOrEmpty(sortedTxtParams.GetValue(WeChatPayConsts.brand_mch_id))) { sortedTxtParams.Add(WeChatPayConsts.sub_mch_id, options.SubMchId); } sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.APIKey, signType)); }
public void PrimaryHandler(WeChatPayDictionary sortedTxtParams, WeChatPayOptions options) { if (string.IsNullOrEmpty(options.RsaPublicKey)) { throw new WeChatPayException($"{nameof(WeChatPayPayBankRequest)}.{nameof(PrimaryHandler)}: {nameof(options.RsaPublicKey)} is empty!"); } sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId); sortedTxtParams.Add(WeChatPayConsts.enc_bank_no, OaepSHA1WithRSA.Encrypt(BankNo, options.RsaPublicKey)); sortedTxtParams.Add(WeChatPayConsts.enc_true_name, OaepSHA1WithRSA.Encrypt(TrueName, options.RsaPublicKey)); sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.APIKey, signType)); }
public async Task <IActionResult> AppOrder(string out_trade_no, string body, int total_fee, string spbill_create_ip, string notify_url, string trade_type) { var request = new WeChatPayUnifiedOrderRequest() { OutTradeNo = out_trade_no, Body = body, TotalFee = total_fee, SpbillCreateIp = spbill_create_ip, NotifyUrl = notify_url, TradeType = trade_type, }; var response = await _client.ExecuteAsync(request); // 组合"调起支付接口"所需参数 : var unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); var timeStamp = (long)((DateTime.Now - unixEpoch).TotalSeconds); var dic = new WeChatPayDictionary { { "appid", _client.Options.AppId }, { "partnerid", _client.Options.MchId }, { "prepayid", response.PrepayId }, { "package", "Sign=WXPay" }, { "noncestr", Guid.NewGuid().ToString("N") }, { "timestamp", timeStamp.ToString() } }; // 将这些参数签名 dic.Add("sign", WeChatPaySignature.SignWithKey(dic, _client.Options.Key)); // 将签名后的参数(dic)给 ios/android端 由其去调起微信APP(https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5) return(Ok(dic)); }
public T Parse(string body) { T result = null; var parameters = new WeChatPayDictionary(); try { var bodyDoc = XDocument.Parse(body).Element("xml"); foreach (var element in bodyDoc.Elements()) { parameters.Add(element.Name.LocalName, element.Value); } using (var sr = new StringReader(body)) { var xmldes = new XmlSerializer(typeof(T)); result = (T)xmldes.Deserialize(sr); } } catch { } if (result == null) { result = Activator.CreateInstance <T>(); } result.Body = body; result.Parameters = parameters; result.Execute(); return(result); }
public T Parse(string body) { if (string.IsNullOrEmpty(body)) { throw new ArgumentNullException(nameof(body)); } T rsp = null; var parameters = new WeChatPayDictionary(); try { var doc = XDocument.Parse(body).Root; var text = doc.DescendantNodes().OfType <XText>().ToList(); foreach (var t in text) { parameters.Add(t.Parent.Name.LocalName, t.Value); // 移除CData if (t is XCData) { t.Parent.Add(t.Value); t.Remove(); } } var jsonText = JsonConvert.SerializeXNode(doc); var json = JsonConvert.DeserializeObject <IDictionary>(jsonText); if (json != null) { // 忽略根节点的名称 foreach (var key in json.Keys) { var data = json[key].ToString(); if (!string.IsNullOrEmpty(data)) { rsp = JsonConvert.DeserializeObject <T>(data); break; } } } } catch { } if (rsp == null) { rsp = Activator.CreateInstance <T>(); } if (rsp != null) { rsp.Body = body; rsp.Parameters = parameters; } return(rsp); }
public T Parse(string body, string data) { if (string.IsNullOrEmpty(body)) { throw new ArgumentNullException(nameof(body)); } if (string.IsNullOrEmpty(data)) { throw new ArgumentNullException(nameof(data)); } T rsp = null; var parameters = new WeChatPayDictionary(); try { var bodyDoc = XDocument.Parse(body).Element("xml"); var rootDoc = XDocument.Parse(data).Element("root"); bodyDoc.Add(rootDoc.Nodes()); var sb = new StringBuilder(); using (var writer = new StringWriter(sb)) { bodyDoc.Save(writer, SaveOptions.None); } using (var sr = new StringReader(sb.ToString())) { var xmldes = new XmlSerializer(typeof(T), new XmlRootAttribute("xml")); rsp = (T)xmldes.Deserialize(sr); } foreach (var xe in bodyDoc.Elements()) { parameters.Add(xe.Name.LocalName, xe.Value); } } catch { } if (rsp == null) { rsp = Activator.CreateInstance <T>(); } if (rsp != null) { rsp.Body = data; rsp.Parameters = parameters; rsp.Execute(); } return(rsp); }
public void PrimaryHandler(WeChatPayOptions options, WeChatPaySignType signType, WeChatPayDictionary sortedTxtParams) { sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.wxappid, options.AppId); sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId); var signList = new List <string> { "act_name", "mch_billno", "mch_id", "nonce_str", "re_openid", "total_amount", "wxappid", }; sortedTxtParams.Add(WeChatPayConsts.workwx_sign, WeChatPaySignature.SignWithSecret(sortedTxtParams, options.AppSecret, signList)); sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.Key, signType)); }
public void PrimaryHandler(WeChatPayOptions options, WeChatPaySignType signType, WeChatPayDictionary sortedTxtParams) { if (string.IsNullOrEmpty(options.RsaPublicKey)) { throw new WeChatPayException("WeChatPayPayBankRequest: RsaPublicKey is null!"); } sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId); var no = OaepSHA1WithRSA.Encrypt(sortedTxtParams.GetValue(WeChatPayConsts.enc_bank_no), options.RsaPublicKey); sortedTxtParams.SetValue(WeChatPayConsts.enc_bank_no, no); var name = OaepSHA1WithRSA.Encrypt(sortedTxtParams.GetValue(WeChatPayConsts.enc_true_name), options.RsaPublicKey); sortedTxtParams.SetValue(WeChatPayConsts.enc_true_name, name); sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.Key, signType)); }
public void PrimaryHandler(WeChatPayOptions options, WeChatPaySignType signType, WeChatPayDictionary sortedTxtParams) { sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.appid, options.AppId); sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId); var signList = new List<string> { "amount", "appid", "desc", "mch_id", "nonce_str", "openid", "partner_trade_no", "ww_msg_type", }; sortedTxtParams.Add(WeChatPayConsts.workwx_sign, WeChatPaySignature.SignWithSecret(sortedTxtParams, options.Secret, signList)); sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.Key, signType)); }
public void PrimaryHandler(WeChatPayDictionary sortedTxtParams, WeChatPayOptions options) { sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.appid, options.AppId); sortedTxtParams.Add(WeChatPayConsts.sub_appid, options.SubAppId); sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId); sortedTxtParams.Add(WeChatPayConsts.sub_mch_id, options.SubMchId); sortedTxtParams.Add(WeChatPayConsts.sign_type, signType.ToString()); sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.APIKey, signType)); }
public void PrimaryHandler(WeChatPayDictionary sortedTxtParams, WeChatPayOptions options) { sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.appid, options.AppId); sortedTxtParams.Add(WeChatPayConsts.sub_appid, options.SubAppId); sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId); sortedTxtParams.Add(WeChatPayConsts.sub_mch_id, options.SubMchId); sortedTxtParams.Add(WeChatPayConsts.timestamp, WeChatPayUtility.GetTimeStamp()); if (signType == WeChatPaySignType.HMAC_SHA256) { sortedTxtParams.Add(WeChatPayConsts.sign_type, signType); } sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.APIKey, signType)); }
public T Parse(string body, string data) { T result = null; var parameters = new WeChatPayDictionary(); try { var bodyDoc = XDocument.Parse(body).Element("xml"); var rootDoc = XDocument.Parse(data).Element("root"); bodyDoc.Add(rootDoc.Nodes()); var sb = new StringBuilder(); using (var writer = new StringWriter(sb)) { bodyDoc.Save(writer, SaveOptions.None); } using (var sr = new StringReader(sb.ToString())) { var xmldes = new XmlSerializer(typeof(T)); result = (T)xmldes.Deserialize(sr); } foreach (var xe in bodyDoc.Elements()) { parameters.Add(xe.Name.LocalName, xe.Value); } } catch { } if (result == null) { result = Activator.CreateInstance <T>(); } if (result != null) { result.Body = data; result.Parameters = parameters; result.Execute(); } return(result); }
public void PrimaryHandler(WeChatPayOptions options, WeChatPayDictionary sortedTxtParams) { sortedTxtParams.Add(WeChatPayConsts.noncestr, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.timestamp, WeChatPayUtility.GetTimeStamp()); if (!string.IsNullOrEmpty(options.SubAppId) && !string.IsNullOrEmpty(options.SubMchId)) { sortedTxtParams.Add(WeChatPayConsts.appid, options.SubAppId); sortedTxtParams.Add(WeChatPayConsts.partnerid, options.SubMchId); } else { sortedTxtParams.Add(WeChatPayConsts.appid, options.AppId); sortedTxtParams.Add(WeChatPayConsts.partnerid, options.MchId); } sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.APIKey, WeChatPaySignType.MD5)); }
public T Parse(string body) { if (string.IsNullOrEmpty(body)) { throw new ArgumentNullException(nameof(body)); } T rsp = null; var parameters = new WeChatPayDictionary(); try { using (var sr = new StringReader(body)) { var xmldes = new XmlSerializer(typeof(T), new XmlRootAttribute("xml")); rsp = (T)xmldes.Deserialize(sr); } var bodyDoc = XDocument.Parse(body).Element("xml"); foreach (var xe in bodyDoc.Elements()) { parameters.Add(xe.Name.LocalName, xe.Value); } } catch { } if (rsp == null) { rsp = Activator.CreateInstance <T>(); } if (rsp != null) { rsp.Body = body; rsp.Parameters = parameters; rsp.Execute(); } return(rsp); }
public void PrimaryHandler(WeChatPayOptions options, WeChatPayDictionary sortedTxtParams) { if (!string.IsNullOrEmpty(options.SubAppId) && !string.IsNullOrEmpty(options.SubMchId)) { sortedTxtParams.Add(WeChatPayConsts.appid, options.SubAppId); sortedTxtParams.Add(WeChatPayConsts.partnerid, options.SubMchId); } else { sortedTxtParams.Add(WeChatPayConsts.appid, options.AppId); sortedTxtParams.Add(WeChatPayConsts.partnerid, options.MchId); } sortedTxtParams.Add(WeChatPayConsts.noncestr, WeChatPayUtility.GenerateNonceStr()); sortedTxtParams.Add(WeChatPayConsts.timestamp, WeChatPayUtility.GetTimeStamp()); var signatureSourceData = BuildSignatureSourceData(sortedTxtParams); sortedTxtParams.Add(WeChatPayConsts.sign, SHA256WithRSA.Sign(options.CertificateRSAPrivateKey, signatureSourceData)); }