Разработка Панели Управления игровых хостингом - C#

Узнай цену своей работы

Формулировка задачи:

Добрый день. Не давно вернулся с армии и понял, что все забыл . Сейчас разрабатываю новый проект, и заглох, когда время подошло к разработке системы оплаты через приложение на яндекс/webmoney/qiwi. Начал смотреть примеры, но к сожалению есть только один, и не раскрытый. Может кто нибудь сможет подкинуть примеры, либо подсказки, что нибудь? Заранее буду благодарен)
Вообще нету никого на форуме?)

Решение задачи: «Разработка Панели Управления игровых хостингом»

textual
Листинг программы
using System;
          using System.Web;
          using System.Text;
          using System.Security.Cryptography;
          using System.Collections.Generic;
 
          public class PaymentForm : IHttpHandler 
          {
            public void ProcessRequest(HttpContext context) 
            {
              // Секретный ключ интернет-магазина
 
              string merchantKey = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
 
              // Добавление полей формы в словарь, сортированный по именам ключей.
 
              SortedDictionary<string, string> formField 
                = new SortedDictionary<string, string>();
 
              formField.Add("WMI_MERCHANT_ID",    "123456789012");
              formField.Add("WMI_PAYMENT_AMOUNT", "100.00");
              formField.Add("WMI_CURRENCY_ID",    "643");
              formField.Add("WMI_PAYMENT_NO",     "12345-001");
              formField.Add("WMI_DESCRIPTION",    "BASE64:" + Convert.ToBase64String(Encoding.UTF8.GetBytes("Payment for order #12345-001 in MYSHOP.com")));
              formField.Add("WMI_EXPIRED_DATE",   "2019-12-31T23:59:59");
              formField.Add("WMI_SUCCESS_URL",    "https://myshop.com/w1/success.php");
              formField.Add("WMI_FAIL_URL",       "https://myshop.com/w1/fail.php");
              formField.Add("MyShopParam1", "Value1"); // Дополнительные параметры
              formField.Add("MyShopParam2", "Value2"); // магазина тоже участвуют
              formField.Add("MyShopParam3", "Value3"); // при формировании подписи!
 
              // Формирование сообщения, путем объединения значений формы, 
              // отсортированных по именам ключей в порядке возрастания и
              // добавление к нему "секретного ключа" интернет-магазина
 
              StringBuilder signatureData = new StringBuilder();
 
              foreach (string key in formField.Keys)
              {
                  signatureData.Append(formField[key]);
              }
 
              // Формирование значения параметра WMI_SIGNATURE, путем 
              // вычисления отпечатка, сформированного выше сообщения, 
              // по алгоритму MD5 и представление его в Base64
 
              string message = signatureData.ToString() + merchantKey;
              Byte[] bytes = Encoding.GetEncoding(1251).GetBytes(message);
              Byte[] hash = new MD5CryptoServiceProvider().ComputeHash(bytes);
              string signature = Convert.ToBase64String(hash);
 
              // Добавление параметра WMI_SIGNATURE в словарь параметров формы
 
              formField.Add("WMI_SIGNATURE", signature);
 
              // Формирование платежной формы
 
              StringBuilder output = new StringBuilder();
 
              output.AppendLine("<form method="POST" action="https://wl.walletone.com/checkout/checkout/Index">");
 
              foreach (string key in formField.Keys)
              {
                  output.AppendLine(String.Format("{0}: <input name="{0}" value="{1}"/>", key, formField[key]));
              }
 
              output.AppendLine("<input type="submit"/></form>");
 
              context.Response.ContentType = "text/html; charset=UTF-8";
              context.Response.Write(output.ToString());
            }
          }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.846 из 5
Похожие ответы