public T Parse(JDPayDictionary dictionary) { if (dictionary == null || dictionary.Count == 0) { throw new ArgumentNullException(nameof(dictionary)); } if (!DicProperties.ContainsKey(typeof(T))) { DicProperties[typeof(T)] = GetPropertiesMap(typeof(T)); } var propertiesMap = DicProperties[typeof(T)]; var rsp = Activator.CreateInstance <T>(); foreach (var item in dictionary) { if (propertiesMap.ContainsKey(item.Key)) { propertiesMap[item.Key].SetValue(rsp, item.Value.TryTo(propertiesMap[item.Key].PropertyType)); } } if (rsp != null) { rsp.Parameters = dictionary; } return(rsp); }
public static JDPayDictionary EncryptData(string signCert, string password, string envelopCert, JDPayDictionary dictionary, string singKey, string encryptType, bool isEncrypt) { var encryptData = new JDPayDictionary(); var data = GetNPP10SignContentOrEncryptContent(dictionary); dictionary.TryGetValue(JDPayContants.CUSTOMER_NO, out var customerNo); dictionary.TryGetValue(JDPayContants.SIGN_TYPE, out var signType); if (!isEncrypt || string.IsNullOrEmpty(encryptType)) { dictionary.Add(JDPayContants.SIGN_DATA, GetNPP10Sign(data, signType, singKey)); encryptData = dictionary; } else { encryptData.Add(JDPayContants.SIGN_TYPE, signType); encryptData.Add(JDPayContants.SIGN_DATA, GetNPP10Sign(data, signType, singKey)); encryptData.Add(JDPayContants.CUSTOMER_NO, customerNo); encryptData.Add(JDPayContants.ENCRYPT_TYPE, encryptType); if ("RSA" == encryptType) { encryptData.Add(JDPayContants.ENCRYPT_DATA, SignEnvelop(signCert, password, envelopCert, data)); } else { throw new JDPayException("不支持的加密方式"); } } return(encryptData); }
public IDictionary <string, string> GetParameters() { var parameters = new JDPayDictionary { { "token", Token }, { "device", Device }, { "tradeNum", TradeNum }, { "tradeName", TradeName }, { "tradeDesc", TradeDesc }, { "tradeTime", TradeTime }, { "amount", Amount }, { "industryCategoryCode", IndustryCategoryCode }, { "currency", Currency }, { "note", Note }, { "notifyUrl", NotifyUrl }, { "orderGoodsNum", OrderGoodsNum }, { "vendorId", VendorId }, { "goodsInfoList", GoodsInfoList }, { "receiverInfo", ReceiverInfo }, { "termInfo", TermInfo }, { "payMerchant", PayMerchant }, { "riskInfo", RiskInfo } }; return(parameters); }
public IDictionary <string, string> GetParameters() { var parameters = new JDPayDictionary() { { "payMerchant", PayMerchant }, { "device", Device }, { "tradeNum", TradeNum }, { "tradeName", TradeName }, { "tradeDesc", TradeDesc }, { "tradeTime", TradeTime }, { "amount", Amount }, { "orderType", OrderType }, { "industryCategoryCode", IndustryCategoryCode }, { "currency", Currency }, { "note", Note }, { "callbackUrl", CallbackUrl }, { "notifyUrl", NotifyUrl }, { "ip", Ip }, { "specCardNo", SpecCardNo }, { "specId", SpecId }, { "specName", SpecName }, { "tradeType", TradeType }, { "userId", UserId }, { "expireTime", ExpireTime }, { "orderGoodsNum", OrderGoodsNum }, { "vendorId", VendorId }, { "goodsInfo", GoodsInfo }, { "receiverInfo", ReceiverInfo }, { "termInfo", TermInfo }, { "riskInfo", RiskInfo }, }; return(parameters); }
private static string GetNPP10Sign(JDPayDictionary dictionary, string algorithm, string salt) { if (dictionary == null || dictionary.Count == 0) { return(string.Empty); } var sb = new StringBuilder(); foreach (var iter in dictionary) { if (!string.IsNullOrEmpty(iter.Value) && iter.Key != "sign_type" && iter.Key != "sign_data" && iter.Key != "encrypt_type" && iter.Key != "encrypt_data" && iter.Key != "salt") { sb.Append(iter.Key).Append("=").Append(iter.Value).Append("&"); } } var sign = string.Empty; var data = sb.Remove(sb.Length - 1, 1) + salt; if ("SHA" == algorithm) { sign = SHA1.Compute(data).ToUpper(); } else if ("SHA-256" == algorithm) { sign = SHA256.Compute(data).ToUpper(); } return(sign); }
public static string SortedDictionary2XmlStr(JDPayDictionary dictionary) { var xmldoc = new XmlDocument(); SortedDictionary2Xml(xmldoc, dictionary); return(ConvertXmlToString(xmldoc)); }
public static bool VerifySign(JDPayDictionary dic, string key) { dic.TryGetValue(JDPayContants.SIGN_TYPE, out var algorithm); dic.TryGetValue(JDPayContants.SIGN_DATA, out var sign); dic.Remove(JDPayContants.SIGN_TYPE); dic.Remove(JDPayContants.SIGN_DATA); return(Verify(sign, dic, algorithm, key)); }
public static XmlDocument SortedDictionary2AllXml(JDPayDictionary dictionary) { var xmldoc = new XmlDocument(); var xmldecl = xmldoc.CreateXmlDeclaration("1.0", "UTF-8", null); xmldoc.AppendChild(xmldecl); SortedDictionary2Xml(xmldoc, dictionary); return(xmldoc); }
public IDictionary <string, string> GetParameters() { var parameters = new JDPayDictionary() { { "userId", UserId }, }; return(parameters); }
private static bool Verify(string signStr, JDPayDictionary dic, string algorithm, string salt) { if (string.IsNullOrEmpty(signStr) || null == dic || dic.Count == 0) { return(false); } var newsign = GetNPP10Sign(dic, algorithm, salt); return(newsign == signStr); }
public IDictionary <string, string> GetParameters() { var parameters = new JDPayDictionary() { { "tradeNum", TradeNum }, { "oTradeNum", OTradeNum }, { "tradeType", 0 }, // 消费 }; return(parameters); }
public static void SortedDictionary2Xml(XmlDocument xmldoc, JDPayDictionary dic) { var xmlelem = xmldoc.CreateElement("", "jdpay", ""); xmldoc.AppendChild(xmlelem); foreach (var kv in dic) { var xe = xmldoc.CreateElement(kv.Key); xe.InnerText = kv.Value; xmlelem.AppendChild(xe); } }
public IDictionary <string, string> GetParameters() { var parameters = new JDPayDictionary() { { "request_datetime", RequestDatetime }, { "out_trade_no", OutTradeNo }, { "trade_no", TradeNo }, { "trade_type", TradeType }, }; return(parameters); }
public IDictionary <string, string> GetParameters() { var parameters = new JDPayDictionary() { { "tradeNum", TradeNum }, { "oTradeNum", OTradeNum }, { "amount", Amount }, { "currency", Currency }, { "tradeTime", TradeTime }, { "note", Note }, }; return(parameters); }
public IDictionary <string, string> GetParameters() { var parameters = new JDPayDictionary() { { "request_datetime", RequestDatetime }, { "out_trade_no", OutTradeNo }, { "out_trade_date", OutTradeDate }, { "buyer_info", BuyerInfo }, { "query_type", QueryType }, { "ledger_type", LedgerType }, }; return(parameters); }
public IDictionary <string, string> GetParameters() { var parameters = new JDPayDictionary { { "tradeNum", TradeNum }, { "oTradeNum", OTradeNum }, { "amount", Amount }, { "currency", Currency }, { "tradeTime", TradeTime }, { "notifyUrl", NotifyUrl }, { "note", Note }, { "device", Device }, { "termInfoId", TermInfoId } }; return(parameters); }
private static string GetNPP10SignContentOrEncryptContent(JDPayDictionary para) { if (para == null || para.Count == 0) { return(string.Empty); } var sb = new StringBuilder(); foreach (var iter in para) { if (!string.IsNullOrEmpty(iter.Value) && iter.Key != "sign_type" && iter.Key != "sign_data" && iter.Key != "encrypt_type" && iter.Key != "encrypt_data" && iter.Key != "salt") { sb.Append(iter.Key).Append("=").Append(iter.Value).Append("&"); } } return(sb.Remove(sb.Length - 1, 1).ToString()); }
public static string GetSignContent(JDPayDictionary para) { if (para == null || para.Count == 0) { return(string.Empty); } var sb = new StringBuilder(); foreach (var iter in para) { if (!string.IsNullOrEmpty(iter.Value) && iter.Key != "sign") { sb.Append(iter.Key).Append("=").Append(iter.Value).Append("&"); } } return(sb.Remove(sb.Length - 1, 1).ToString()); }
public IDictionary <string, string> GetParameters() { var parameters = new JDPayDictionary { { "request_datetime", RequestDatetime }, { "out_trade_no", OutTradeNo }, { "biz_trade_no", BizTradeNo }, { "out_trade_date", OutTradeDate }, { "trade_amount", TradeAmount }, { "trade_currency", TradeCurrency }, { "seller_info", SellerInfo }, { "trade_subject", TradeSubject }, { "category_code", CategoryCode }, { "pay_tool", PayTool }, { "trade_source", TradeSource }, { "payee_bank_code", PayeeBankCode }, { "payee_bank_associated_code", PayeeBankAssociatedCode }, { "payee_bank_fullname", PayeeBankFullname }, { "payee_bank_country_code", PayeeBankCountryCode }, { "payee_bank_province_code", PayeeBankProvinceCode }, { "payee_bank_city_code", PayeeBankCityCode }, { "payee_card_type", PayeeCardType }, { "payee_account_type", PayeeAccountType }, { "payee_account_no", PayeeAccountNo }, { "payee_account_name", PayeeAccountName }, { "payee_id_type", PayeeIdType }, { "payee_id_no", PayeeIdNo }, { "payee_mobile", PayeeMobile }, { "notify_url", NotifyUrl }, { "return_params", ReturnParams }, { "extend_params", ExtendParams }, { "bank_card_info_type", BankCardInfoType }, { "bank_card_id", BankCardId } }; return(parameters); }
public IDictionary <string, string> GetParameters() { var parameters = new JDPayDictionary() { { "payMerchant", PayMerchant }, { "device", Device }, { "tradeNum", TradeNum }, { "tradeName", TradeName }, { "tradeDesc", TradeDesc }, { "tradeTime", TradeTime }, { "amount", Amount }, { "orderType", OrderType }, { "industryCategoryCode", IndustryCategoryCode }, { "currency", Currency }, { "tradeType", TradeType }, { "note", Note }, { "callbackUrl", CallbackUrl }, { "notifyUrl", NotifyUrl }, { "ip", Ip }, { "riskInfo", RiskInfo }, }; return(parameters); }