public override ProcessPaymentResult ProcessPayment(ProcessPaymentEvaluationContext context) { var retVal = new ProcessPaymentResult(); if (context.Order != null && context.Store != null && context.Payment != null) { var sequence = new Random().Next(0, 1000).ToString(); var timeStamp = ((int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds).ToString(); var currency = context.Payment.Currency.ToString(); var fingerprint = HmacMD5(TxnKey, ApiLogin + "^" + sequence + "^" + timeStamp + "^" + context.Payment.Sum.ToString("F", CultureInfo.InvariantCulture) + "^" + currency); var confirmationUrl = string.Format("{0}/{1}", ConfirmationUrl, context.Order.Id); var checkoutform = string.Empty; checkoutform += string.Format("<form action='{0}' method='POST'>", GetAuthorizeNetUrl()); //credit cart inputs for user checkoutform += string.Format("<p><div style='float:left;width:250px;'><label>Credit Card Number</label><div id = 'CreditCardNumber'>{0}</div></div>", CreateInput(false, "x_card_num", "", 28)); checkoutform += string.Format("<div style='float:left;width:70px;'><label>Exp.</label><div id='CreditCardExpiration'>{0}</div></div>", CreateInput(false, "x_exp_date", "", 5, "placeholder='MMYY'")); checkoutform += string.Format("<div style='float:left;width:70px;'><label>CCV</label><div id='CCV'>{0}</div></div></p>", CreateInput(false, "x_card_code", "", 5)); // checkoutform += CreateInput(true, "x_login", ApiLogin); checkoutform += CreateInput(true, "x_invoice_num", context.Order.Id); checkoutform += CreateInput(true, "x_po_num", context.Order.Number); checkoutform += CreateInput(true, "x_relay_response", "TRUE"); checkoutform += CreateInput(true, "x_relay_url", confirmationUrl); ///Fingerprint and params for it checkoutform += CreateInput(true, "x_fp_sequence", sequence); checkoutform += CreateInput(true, "x_fp_timestamp", timeStamp); checkoutform += CreateInput(true, "x_fp_hash", fingerprint); checkoutform += CreateInput(true, "x_currency_code", currency); checkoutform += CreateInput(true, "x_amount", context.Payment.Sum.ToString("F", CultureInfo.InvariantCulture)); checkoutform += GetAuthOrCapture(); // Add a Submit button checkoutform += "<div style='clear:both'></div><p><input type='submit' class='submit' value='Pay with Authorize.NET' /></p></form>"; checkoutform = checkoutform + DPMFormGenerator.EndForm(); retVal.HtmlForm = checkoutform; retVal.IsSuccess = true; retVal.NewPaymentStatus = context.Payment.PaymentStatus = PaymentStatus.Pending; } return(retVal); }
protected string DPMFormEnd() { return(DPMFormGenerator.EndForm()); }