Hello there,
I've been running the Visa Checkout API associated with Authorize.net Merchant account for the past 2 months, and was accepting Visa, Amex, and Mastercard.
However yesterday, the support for Mastercard is gone from the checkout, and cannot be used.
I have checked this url and removed and re-added Mastercard as an acceptable card type within the Merchant Account, but it is still not showing any support in the production variant of the Visa Checkout widget.
https://support.authorize.net/s/article/How-can-I-add-remove-credit-card-types-that-I-can-accept
I am able to get support for the card brands when using a sandbox ApiKey, but once I switch to a merchant ApiKey and the rest of the credentials to Product, the support for Mastercard is removed.
I've tried adding cardBrands in the properties, and while I can't add Mastercard to the list, I found I am able to remove Amex from the acceptable CardBrands.
function onVisaCheckoutReady(){ var charge = 50; V.init( { apikey: "----------------------------------------", settings: { payment: { cardBrands: [ "VISA", "MASTERCARD", "AMEX", "DISCOVERY"] } }, paymentRequest:{ subtotal: charge, currencyCode: "CAD", total: charge } });
<h:commandButton alt="Visa Checkout" class="v-button" update="panel" image="https://secure.checkout.visa.com/wallet-services-web/xo/button.png" onclick="return false;" /> <script type="text/javascript" src="https://assets.secure.checkout.visa.com/checkout-widget/resources/js/integration/v1/sdk.js"> </script>
I'm not sure if i'm missing something here. Any help would be appreciated
09-18-2020 11:47 AM
I`ve tried simplifying this process as much as possible. I removed the CardBrands portion since the implementation guide said that all CardBrands are accepted by default if it`s not specified. However the production Visa SRC Api Key is still only providing me with the options to pay with Visa or American Express, and is blocking out Mastercard and Discover in the Lightbox popup.
<?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Insert title here</title> <script type="text/javascript"> function onVisaCheckoutReady(){ V.init( { /******** Sandbox apiKey ********/ /* apikey: "----------------------", */ /******** Production apiKey ********/ apikey: "----------------------", paymentRequest:{ subtotal: "50.00", currencyCode: "CAD", total: "50.00" } }); V.on("payment.success", function(payment) { document.write(JSON.stringify(payment)); }); V.on("payment.cancel", function(payment) { document.getElementById('error').value='Payment window has been cancelled'; }); V.on("payment.error", function(payment, error) { document.getElementById('error').value='Payment window has detected an error. Please try again'; }); } </script> </head> <body> <img alt="Visa Checkout" class="v-button" role="button" src="https://secure.checkout.visa.com/wallet-services-web/xo/button.png"/> <script type="text/javascript" src="https://assets.secure.checkout.visa.com/checkout-widget/resources/js/integration/v1/sdk.js"> </script> </body> </html>
Visa, American Express, Mastercard, and Discover are enabled in our Merchant portal, and our processors have confirmed we are accepting these payments aswell.
In the VisaCheckout development guide for Authorize.Net, it mentions a portion for the V.Init Event Handler and a property called "externalProfileId" that describes it's created externally by a Merchant or Partner and is used to populate values such as CardBrands and Shipping Regions, also it overrides existing merchant settings. I don't know how to acquire this ID, but it might fix my issue.
Was also wondering if it's possible to be assigned a new Visa SRC Api Key for your merchant account, as there doesn't appear to be any option to do so manually.
Again, any help on this issue would be appreciated
09-30-2020 07:42 AM