コード例 #1
0
        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);
        }
コード例 #2
0
 public Lookup3dSecure_Result Lookup3dSecure(Lookup3dSecure_Details details)
 {
     throw new NotImplementedException();
 }
コード例 #3
0
        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);
        }