Skip to content

Instantly share code, notes, and snippets.

@latiosthinh
Forked from gayanhewa/index.php
Created August 13, 2021 02:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save latiosthinh/1a182bb4b04b0c7e8323611925d97314 to your computer and use it in GitHub Desktop.
Save latiosthinh/1a182bb4b04b0c7e8323611925d97314 to your computer and use it in GitHub Desktop.
Visa Checkout Sample
<html>
<head>
<script type="text/javascript">
function createCookie(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function onVisaCheckoutReady() {
if (readCookie('caller')) {
console.log('reused');
var ops = {
// referenceCallID: readCookie('caller'),
apikey: "{{ api_key }}",
sourceId: "Merchant Defined Source ID",
settings: {
locale: "en_US",
countryCode: "US",
displayName: "...Corp",
websiteUrl: "www....Corp.com",
customerSupportUrl: "www....Corp.support.com",
shipping: {
acceptedRegions: ["US", "CA", "AU"],
collectShipping: "true"
},
payment: {
cardBrands: [
"VISA",
"MASTERCARD"],
acceptCanadianVisaDebit: "true",
billingCountries: ["US", "CA", "AU"]
}, review: {
message: "Merchant defined message",
buttonAction: "Continue"
},
dataLevel: "SUMMARY"
},
paymentRequest: {
merchantRequestId: "Merchant defined request ID",
currencyCode: "USD",
subtotal: "10.00",
shippingHandling: "2.00",
tax: "2.00",
discount: "1.00",
giftWrap: "2.00",
misc: "1.00",
total: "16.00",
description: "...corp Product",
orderId: 1001,
}
};
} else {
var ops = {
apikey: "{{ api_key }}",
sourceId: "Merchant Defined Source ID",
settings: {
locale: "en_US",
countryCode: "US",
displayName: "...Corp",
websiteUrl: "www....Corp.com",
customerSupportUrl: "www....Corp.support.com",
shipping: {
acceptedRegions: ["US", "CA", "AU"],
collectShipping: "true"
},
payment: {
cardBrands: [
"VISA",
"MASTERCARD"],
acceptCanadianVisaDebit: "true",
billingCountries: ["US", "CA", "AU"]
}, review: {
message: "Merchant defined message",
buttonAction: "Continue"
},
dataLevel: "SUMMARY"
},
paymentRequest: {
merchantRequestId: "Merchant defined request ID",
currencyCode: "USD",
subtotal: "10.00",
shippingHandling: "2.00",
tax: "2.00",
discount: "1.00",
giftWrap: "2.00",
misc: "1.00",
total: "16.00",
description: "...corp Product",
orderId: 1001,
}
};
}
console.log(ops);
V.init(ops);
V.on("payment.success", function (payment) {
createCookie('caller', payment.callid);
console.log(payment);
});
}
</script>
</head>
<body>
<img alt="Visa Checkout" id="v-button" role="button" src="https://sandbox.secure.checkout.visa.com/wallet-services-web/xo/button.png?
cardBrands=VISA,MASTERCARD,DISCOVER,AMEX" />
<a data-v-button href="#" onClick="onVisaCheckoutReady()">Edit with Visa Checkout</a>
<script type="text/javascript" src="https://sandbox-assets.secure.checkout.visa.com/checkout-widget/resources/js/integration/v1/sdk.js">
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment