public ActionResult <RedsysRequest> Get(string orderNumber, [FromServices] Secret secret) { PaymentRequestService paymentRequestService = new PaymentRequestService(); PaymentRequest paymentRequest = new PaymentRequest( Ds_Merchant_ConsumerLanguage: Language.Spanish, Ds_Merchant_MerchantCode: "335088258", Ds_Merchant_Terminal: "1", Ds_Merchant_TransactionType: TransactionType.Authorisation, Ds_Merchant_Amount: 123, Ds_Merchant_Currency: Currency.EUR, Ds_Merchant_Order: orderNumber, Ds_Merchant_MerchantURL: Url.Action("Index", "Response", null, Request.Scheme), Ds_Merchant_UrlOK: $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}/Ok", Ds_Merchant_UrlKO: $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}/Ko") { Ds_Merchant_Paymethods = PaymentMethod.CreditCard }; PaymentFormData formData = paymentRequestService.GetPaymentRequestFormData( paymentRequest: paymentRequest, merchantKey: secret.Key); RedsysRequest redsysRequest = new RedsysRequest { ConnectionUrl = secret.Url, Request = formData }; return(Ok(redsysRequest)); }
public PaymentFormData GetPaymentRequestFormData(PaymentRequest paymentRequest, string merchantKey) { PaymentFormData result = new PaymentFormData(); result.Ds_SignatureVersion = "HMAC_SHA256_V1"; result.Ds_MerchantParameters = merchantParamentersManager.GetMerchantParameters(paymentRequest); result.Ds_Signature = signatureManager.GetSignature(result.Ds_MerchantParameters, paymentRequest.Ds_Merchant_Order, merchantKey); return(result); }
public async Task <IActionResult> Post([FromBody] PaymentFormData formData) { if (!_paymentService.ProcessPayment(formData.Token, PaymentService.DepositAmount)) { return(BadRequest()); } await _accountService.UpdateUserBalance(PaymentService.DepositAmount); var updatedAccountInfo = await _accountService.GetUserAccountInfo(); return(Ok(updatedAccountInfo)); }
public async Task <IActionResult> ProcessPayment(PaymentFormData formData) { if (paymentService.ProcessPayment(formData.Token)) { await accountManager.AddUserToPremiumGroup(HttpContext.User.Identity); return(Redirect("Index")); } else { //TODO: Handle errors return(Redirect("Error")); } }