Разработка Панели Управления игровых хостингом - 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()); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д