public Lookup3dSecure_Result Lookup3dSecure(Lookup3dSecure_Details details) { var result = new Lookup3dSecure_Result(); string style = @"<style> .StripeElement { background - color: white; padding: 8px 12px; border - radius: 4px; border: 1px solid transparent; box - shadow: 0 1px 3px 0 #e6ebf1; - webkit - transition: box - shadow 150ms ease; transition: box - shadow 150ms ease; } .StripeElement--focus { box - shadow: 0 1px 3px 0 #cfd7df; } .StripeElement--invalid { border - color: #fa755a; } .StripeElement--webkit - autofill { background - color: #fefde5 !important; } </style >"; string formHTML = @"<form id='payment-form' action='" + details.ExternalIdentifier1 + "' method='post' target='_self' ><div class='form-row'>"; formHTML += "<label for='card-element'>Stripe Payment</label><div id='card-element'></div>"; formHTML += "<div id='card-errors' role='alert'></div>"; formHTML += "<input type='hidden' id='tokenVal' name='tokenVal'/>"; formHTML += "<input type='text' name='currency' value='" + details.SaleData.CurrencyCode + "'/>"; formHTML += "<input type='text' name='name' value='" + details.SaleData.CardHolderName + "'/>"; formHTML += "<input type='text' name='amount' value='" + details.SaleData.Amount + "'/>"; formHTML += "<input type='text' name='surname' value='" + details.SaleData.CardHolderLastName + "'/>"; formHTML += "<button> Submit Payment </button></div></form>"; string script = @"<script src='https://js.stripe.com/v3/'></script><script>"; script += "var stripe = Stripe('" + publishableKey + "');"; script += @"var elements = stripe.elements(); var style = { base: { color: '#32325d', lineHeight: '24px', fontSmoothing: 'antialiased', fontSize: '16px', '::placeholder': { color: '#aab7c4' } }, invalid: { color: '#fa755a', iconColor: '#fa755a' } }; var card = elements.create('card', { style: style }); card.mount('#card-element'); card.addEventListener('change', function(event) { var displayError = document.getElementById('card-errors'); if (event.error) { displayError.textContent = event.error.message; } else { displayError.textContent = ''; } }); var form = document.getElementById('payment-form'); form.addEventListener('submit', function(event) { event.preventDefault(); stripe.createToken(card).then(function(result) { if (result.error) { var errorElement = document.getElementById('card-errors'); errorElement.textContent = result.error.message; } else { stripeTokenHandler(result.token); } }); }); function stripeTokenHandler(res) { document.getElementById('tokenVal').value = res.id; document.getElementById('payment-form').submit(); } </script>"; if (paymentOptions.ThreeDSecure) { if (details.isPayment) { result.ThreeDSecurePost = formHTML + script; // } } return(result); }
public Lookup3dSecure_Result Lookup3dSecure(Lookup3dSecure_Details details) { throw new NotImplementedException(); }
public Lookup3dSecure_Result Lookup3dSecure(Lookup3dSecure_Details details) { var result = new Lookup3dSecure_Result(); if (paymentOptions.ThreeDSecure) { var stringPost = ""; if (details.isPayment) { stringPost += @"<form action='https://www.vcs.co.za/vvonline/vcspay.aspx' method='post' target='_self'>"; stringPost += @"<input type='hidden' name='p1' value='" + userID + "' >"; stringPost += @"<input type='hidden' name='p2' value='" + details.SaleData.ExtRef + "'>"; stringPost += @"<input type='hidden' name='p3' value='" + details.SaleData.ProductDescription + "' >"; stringPost += @"<input type='hidden' name='p4' value='" + details.SaleData.Amount.ToString("F2") + "' >"; stringPost += @"<input type='hidden' name='p5' value='" + details.SaleData.CurrencyCode + "' >"; if (!details.isOnceoff) { //stringPost += @"<input type='hidden' name='p6' value='U' >"; //stringPost += @"<input type='hidden' name='p7' value='" + "O" + "' >"; stringPost += @"<input type='hidden' name='p12' value='" + "N" + "' >"; stringPost += @"<input type='hidden' name='p13' value='" + "0" + "' >"; stringPost += @"<input type='hidden' name='RecurReference' value='" + details.ProviderToken + "'>"; //recur ref } stringPost += @"<input type='hidden' name='m_1' value='" + details.TransactionToken + "'>"; //transactionID stringPost += @"<input type='hidden' name='m_2' value='" + details.ExternalIdentifier1 + "'>"; //extref - AKA BA AccountID stringPost += @"<input type='hidden' name='m_3' value='" + details.ExternalIdentifier2 + "'>"; //payment method token stringPost += @"<input type='hidden' name='m_4' value='" + details.ExternalIdentifier3 + "'>"; //customerID stringPost += @"<input type='hidden' name='m_5' value='" + details.ExternalIdentifier4 + "'>"; //hash stringPost += @"<input type='hidden' name='m_6' value='" + details.ExternalIdentifier5 + "'>"; //verify stringPost += @"<input type='hidden' name='PaymentMethod' value='cc'>"; if (details.isOnceoff) { stringPost += @"<input type='hidden' name='CardNumber' value='" + details.SaleData.CardNumber + "'>"; } stringPost += @"<input type='hidden' name='ExpiryDate' value='" + GatewayUtils.formatExpiryDateYYmm(details.SaleData.CardExpiryMonth, details.SaleData.CardExpiryYear) + "'>"; stringPost += @"<input type='hidden' name='CVV' value='" + details.SaleData.CardCCV + "'>"; stringPost += @"<input type='hidden' name='CardholderName' value='" + details.SaleData.CardHolderName + " " + details.SaleData.CardHolderLastName + "'>"; stringPost += @"<input type='submit' value='Proceed'>"; stringPost += @"</form>"; } else { stringPost += @"<form action='https://www.vcs.co.za/vvonline/vcspay.aspx' method='post' target='_self'>"; stringPost += @"<input type='hidden' name='p1' value='" + userID + "' >"; stringPost += @"<input type='hidden' name='p2' value='" + details.ProviderToken + "'>"; stringPost += @"<input type='hidden' name='p3' value='Enrollment' >"; stringPost += @"<input type='hidden' name='p4' value='1' >"; stringPost += @"<input type='hidden' name='IsRegistration' value='Y'>"; stringPost += @"<input type='hidden' name='m_1' value='" + details.TransactionToken + "'>"; //transactionID stringPost += @"<input type='hidden' name='m_2' value='" + details.ExternalIdentifier1 + "'>"; //extref - AKA BA AccountID stringPost += @"<input type='hidden' name='m_3' value='" + details.ExternalIdentifier2 + "'>"; //payment method token stringPost += @"<input type='hidden' name='m_4' value='" + details.ExternalIdentifier3 + "'>"; //customerID stringPost += @"<input type='hidden' name='m_5' value='" + details.ExternalIdentifier4 + "'>"; //hash stringPost += @"<input type='hidden' name='m_6' value='" + details.ExternalIdentifier5 + "'>"; //verify stringPost += @"<input type='hidden' name='PaymentMethod' value='cc'>"; stringPost += @"<input type='hidden' name='CardNumber' value='" + details.SaleData.CardNumber + "'>"; stringPost += @"<input type='hidden' name='ExpiryDate' value='" + GatewayUtils.formatExpiryDateYYmm(details.SaleData.CardExpiryMonth, details.SaleData.CardExpiryYear) + "'>"; if (!isTestMode) //put this here as VCS did not fix their testing sandbox bug but said we should omit in test mode { stringPost += @"<input type='hidden' name='CVV' value='" + details.SaleData.CardCCV + "'>"; } stringPost += @"<input type='hidden' name='CardholderName' value='" + details.SaleData.CardHolderName + " " + details.SaleData.CardHolderLastName + "'>"; stringPost += @"<input type='submit' value='Proceed'>"; stringPost += @"</form>"; } result.ThreeDSecurePost = stringPost; } return(result); }