Also, to add here is how I am loading accept.js:
<script type="text/javascript" src="https://js.authorize.net/v1/Accept.js" charset="utf-8"></script>
And my processing functions are pretty straight forward (with a bit of extra error handling trying to figure out these issues):
var authAcceptButtonColor;
var authAcceptButtonName;
function sendPaymentDataToAnet()
{
var authAcceptButton = document.getElementById("chkotbtn");
try
{
authAcceptButtonColor = window.getComputedStyle(authAcceptButton, null).getPropertyValue("background-color");
authAcceptButtonName = authAcceptButton.value;
}
catch(err)
{
authAcceptButtonColor = "#BB5600";
authAcceptButtonName = "Place Order";
}
authAcceptButton.style.backgroundColor = "#757575";
authAcceptButton.value = "Submitting...";
var authData = {};
authData.clientKey = "....";
authData.apiLoginID = ".....";
var cc_val=document.getElementsByName("authorizenet_accept_cc_number")[0];
var cc_mon=document.getElementsByName("authorizenet_accept_cc_expires_month")[0];
var cc_year=document.getElementsByName("authorizenet_accept_cc_expires_year")[0];
var cc_name=document.getElementsByName("authorizenet_accept_cc_owner")[0];
var cc_cvv=document.getElementsByName("authorizenet_accept_cc_cvv")[0];
var cardData = {};
cardData.cardNumber = cc_val.value;
cardData.month = cc_mon.value;
cardData.year = cc_year.value;
cardData.cardCode = cc_cvv.value;
var secureData = {};
secureData.authData = authData;
secureData.cardData = cardData;
try
{
Accept.dispatchData(secureData, responseHandler);
}
catch(err)
{
authAcceptButton.style.backgroundColor = authAcceptButtonColor;
authAcceptButton.value = authAcceptButtonName;
var ccerror=document.getElementById("aimccerror");
ccerror.innerHTML = "- (FD34) An error occured with our payment service, please wait 30 seconds and try again.";
reportAuthScriptError(err);
}
}
function responseHandler(response)
{
try
{
var authAcceptButton = document.getElementById("chkotbtn");
if(response.messages.resultCode === "Error")
{
authAcceptButton.style.backgroundColor = authAcceptButtonColor;
authAcceptButton.value = authAcceptButtonName;
var i = 0;
var errorString = "";
toggleccerror("cc_mon_div",0);
toggleccerror("cc_year_div",0);
while (i < response.messages.message.length) {
if(response.messages.message[i].code == "E_WC_14")
{
errorString += "- Our payment processor is having technical issues, please try again later. Apologies for the inconvenience.<br/>";
reportAuthScriptError("Submit Error: " + response.messages.message[i].code + ", " + response.messages.message[i].text);
}
else
{
errorString += "- " + response.messages.message[i].text + "<br/>";
reportAuthScriptError("Submit Error: " + response.messages.message[i].code + ", " + response.messages.message[i].text);
}
if(response.messages.message[i].code == "E_WC_08")
{
toggleccerror("cc_mon_div", 1);
toggleccerror("cc_year_div", 1);
}
i = i + 1;
}
if(i > 0)
{
var ccerror=document.getElementById("aimccerror");
ccerror.innerHTML = errorString;
var payButtonErrorCont = document.getElementById("payButEr");
payButtonErrorCont.innerHTML = "<div style=\'float:right;width:100%;text-align:right;padding:10px;font-weight:bold;color:#cc0000;font-size:13px;\'>Issue with credit card information<br/>Please check and try again</div>";
}
else
{
reportAuthScriptError("Error state, no error.");
}
}
else
{
paymentFormUpdate(response.opaqueData);
var payButtonErrorCont = document.getElementById("payButEr");
payButtonErrorCont.innerHTML = "";
}
}
catch(exExtern)
{
var authAcceptButton = document.getElementById("chkotbtn");
var ccerror=document.getElementById("aimccerror");
ccerror.innerHTML = "- (FD85) Issue with payment processor, please try again.";
authAcceptButton.style.backgroundColor = authAcceptButtonColor;
authAcceptButton.value = authAcceptButtonName;
var payButtonErrorCont = document.getElementById("payButEr");
payButtonErrorCont.innerHTML = "<div style=\'float:right;width:100%;text-align:right;padding:10px;font-weight:bold;color:#cc0000;font-size:13px;\'>Issue with credit card information<br/>Please check and try again</div>";
reportAuthScriptError(exExtern);
}
return false;
}
function paymentFormUpdate(opaqueData)
{
document.getElementById("dataDescriptor").value = opaqueData.dataDescriptor;
document.getElementById("dataValue").value = opaqueData.dataValue;
document.getElementsByName("authorizenet_accept_cc_owner")[0].value = "XXXXXX XXXXX";
document.getElementsByName("authorizenet_accept_cc_number")[0].value = "XXXXXXXXXXXXXXXX";
document.getElementsByName("authorizenet_accept_cc_expires_month")[0].value = "0";
document.getElementsByName("authorizenet_accept_cc_expires_year")[0].value = "0";
document.getElementsByName("authorizenet_accept_cc_cvv")[0].value = "XXX";
var paymentForm = document.getElementsByName("checkout_address");
paymentForm[0].submit();
}