Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 23571|Отговор: 1

[Източник] .NET версия на метода за криптиране на знаци за платежен интерфейс Tenpay

[Копирай линк]
Публикувано в 14.01.2016 г. 17:00:46 ч. | | | |



  1. // tenpay.PayRequestHandler
  2. protected override void createSign()
  3. {
  4.         string parameter = base.getParameter("cmdno");
  5.         string parameter2 = base.getParameter("date");
  6.         string parameter3 = base.getParameter("bargainor_id");
  7.         string parameter4 = base.getParameter("transaction_id");
  8.         string parameter5 = base.getParameter("sp_billno");
  9.         string parameter6 = base.getParameter("total_fee");
  10.         string parameter7 = base.getParameter("fee_type");
  11.         string parameter8 = base.getParameter("return_url");
  12.         string parameter9 = base.getParameter("attach");
  13.         string parameter10 = base.getParameter("spbill_create_ip");
  14.         base.getParameter("key");
  15.         StringBuilder stringBuilder = new StringBuilder();
  16.         stringBuilder.Append("cmdno=" + parameter + "&");
  17.         stringBuilder.Append("date=" + parameter2 + "&");
  18.         stringBuilder.Append("bargainor_id=" + parameter3 + "&");
  19.         stringBuilder.Append("transaction_id=" + parameter4 + "&");
  20.         stringBuilder.Append("sp_billno=" + parameter5 + "&");
  21.         stringBuilder.Append("total_fee=" + parameter6 + "&");
  22.         stringBuilder.Append("fee_type=" + parameter7 + "&");
  23.         stringBuilder.Append("return_url=" + parameter8 + "&");
  24.         stringBuilder.Append("attach=" + parameter9 + "&");
  25.         if (!"".Equals(parameter10))
  26.         {
  27.                 stringBuilder.Append("spbill_create_ip=" + parameter10 + "&");
  28.         }
  29.         stringBuilder.Append("key=" + base.getKey());
  30.         string mD = MD5Util.GetMD5(stringBuilder.ToString(), this.getCharset());
  31.         base.setParameter("sign", mD);
  32.         base.setDebugInfo(stringBuilder.ToString() + " => sign:" + mD);
  33. }
Копирай код


MD5 е алгоритъм за генериране на обобщения, който извършва MD5 операции чрез добавяне на съдържанието на комуникационния ключ на търговеца след подписване на оригиналния низ, а полученият низ за обобщение е резултатът от подписа. За лесно сравнение резултатите от подписите се преобразуват равномерно в главни букви.
Формула за изчисляване на подписа MD5:
sign = MD5 (оригинален низ & key = търговски ключ). toUpper Case
Като:
        Оригиналният низ от подписи е: input_charset=GBK&partner=1900000109&total_fee=1
Търговският ключ е: 8db4a013a8b515349c307f1e448ce836
Резултатът от подписа е:
sign=md5(input_charset=GBK&partner=1900000109&total_fee=1&key=8934e7d15453e97507ef794cf7b0519d)= 8DB4A013A8B515349C307F1E448CE836


Въпреки това, все още имам невалиден подпис, не знам къде е проблемът




Предишен:HTTP грешка 403.14 - Забранена грешка
Следващ:Alibaba Cloud Linux One-Click Инсталирана уеб среда v1.4.5 Standard Edition
 Хазяин| Публикувано в 15.08.2016 г. 11:18:17 ч. |
Подреждане на параметрите от A-Z преди криптирането MD5
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com