public void GenerateSignature(PaymentLiqpayVM /*Our view model*/ payment) { string result = JsonConvert.SerializeObject(payment); string data = Convert.ToBase64String(Encoding.UTF8.GetBytes(result)); //string signature = Convert.ToBase64String(Encoding.UTF8.GetBytes(StringToSHA1(payment.private_key + data + payment.private_key))); string signature = Convert.ToBase64String(SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(payment.private_key + data + payment.private_key))); payment.data = data; payment.signature = signature; //return payment; }
public IActionResult CreatePayment(int orderId) { PaymentLiqpayVM model = new PaymentLiqpayVM(); LiqPaySignatureGenerator liqpaysignature = new LiqPaySignatureGenerator(); var order = _orderService.GetOrderById(orderId); if (order == null) { return(Redirect(_baseUrl)); } if (order.PaymentStatus == PaymentStatus.Paid) { return(Redirect(string.Format("{0}ru/checkout/completed/{1}", _baseUrl, order.Id))); } model.pay_way = "card,liqpay,privat24"; model.amount = order.OrderTotal.ToString("0.00", CultureInfo.InvariantCulture); model.currency = "UAH"; model.action = "pay"; model.private_key = _liqPayPaymentSettings.PrivateKey; model.public_key = _liqPayPaymentSettings.PublicKey; model.recurringbytoken = "0"; model.result_url = string.Format("{0}ru/checkout/completed/{1}", _baseUrl, order.Id);; model.server_url = string.Format("{0}liqpay/callback", _baseUrl); model.version = "3"; if (_liqPayPaymentSettings.UseSandbox) { model.sandbox = "1"; } else { model.sandbox = "0"; } model.description = String.Format("Заказ #{0}. Имя: {1}, тел. {2}, email: {3}", order.Id, order.Customer.BillingAddress.FirstName, order.Customer.BillingAddress.PhoneNumber, order.Customer.Email); model.order_id = order.Id.ToString(); liqpaysignature.GenerateSignature(model); return(View("~/Plugins/Payments.LiqPay/Views/CreatePayment.cshtml", model)); }