182 lines
8.8 KiB
Text
182 lines
8.8 KiB
Text
<cfscript>
|
|
gwParams = {};
|
|
gwParams.Path = "goemerchant.goemerchant";
|
|
|
|
// except for password values must be entered here
|
|
gwParams.MerchantAccount = "";
|
|
gwParams.userName = ""; // GEM transcenter ID
|
|
gwParams.password = ""; // not used
|
|
|
|
gwParams.mid = ""; //found in test mode virtual terminal - unique to your account
|
|
gwParams.tid = ""; //found in test mode virtual terminal - unique to your account
|
|
|
|
svc = createObject("cfpayment.api.core");
|
|
svc.init(gwParams);
|
|
|
|
account = svc.createCreditCard();
|
|
account.setAccount(4111111111111111);
|
|
account.setMonth(10);
|
|
account.setYear(21);
|
|
account.setVerificationValue();
|
|
account.setFirstName("John");
|
|
account.setLastName("Doe");
|
|
account.setAddress("888");
|
|
account.setPostalCode("77777");
|
|
gw = svc.getGateway();
|
|
money = svc.createMoney();
|
|
errors=ArrayNew(1);
|
|
money.init(100); //in cents
|
|
options = {};
|
|
options.order_id = "1234ORDER#dateFormat(now(), 'yyyymmdd')##timeformat(now(), 'HHmmssL')#";
|
|
|
|
//Authorize - Test AVS
|
|
|
|
for(variables.cents = 100; variables.cents <= 190; variables.cents += 5)
|
|
{
|
|
options.order_id = "1234ORDER#dateFormat(now(), 'yyyymmdd')##timeformat(now(), 'HHmmssL')#";
|
|
money.setCents(variables.cents); // goEMerchant uses specific dollar amounts for test cases
|
|
gemResponse = gw.authorize(money, account, options);
|
|
|
|
writeOutput("Authorize - Test AVS<br />");
|
|
writeOutput('<div style="font-family:Courier;">');
|
|
writeOutput('Amount : #money.getAmount()#<br />');
|
|
writeOutput('Status : #gemResponse.getStatus()#<br />');
|
|
writeOutput('TransID : #gemResponse.getTransactionID()#<br />');
|
|
writeOutput('TokenID : #gemResponse.getTokenID()#<br />');
|
|
writeOutput('CVV Rsp : (#account.getVerificationValue()#) - #gemResponse.getCVVCode()# - #gemResponse.getCVVMessage()#<br />');
|
|
writeOutput('AVS Rsp : #gemResponse.getAVSCode()# - #gemResponse.getAVSMessage()#<br />');
|
|
writeOutput('Auth Rsp : #gemResponse.getMessage()#<p />');
|
|
getPageContext().getOut().flush();
|
|
}
|
|
|
|
// Void - Success expected
|
|
|
|
gemResponse = gw.void(gemResponse.getTransactionID(), options);
|
|
|
|
writeOutput("Void - Success expected<br />");
|
|
writeOutput('<div style="font-family:Courier;">');
|
|
writeOutput('Amount : #money.getAmount()#<br />');
|
|
writeOutput('Status : #gemResponse.getStatus()#<br />');
|
|
writeOutput('TransID : #gemResponse.getTransactionID()#<br />');
|
|
writeOutput('TokenID : #gemResponse.getTokenID()#<br />');
|
|
writeOutput('Auth Rsp : #gemResponse.getMessage()#<p />');
|
|
|
|
// Purchase
|
|
|
|
options.order_id = "1234ORDER#dateFormat(now(), 'yyyymmdd')##timeformat(now(), 'HHmmssL')#";
|
|
money.setCents(100); // goEMerchant uses specific dollar amounts for test cases
|
|
gemResponse = gw.purchase(money, account, options);
|
|
account.setVerificationValue();
|
|
|
|
writeOutput("Purchase<br />");
|
|
writeOutput('<div style="font-family:Courier;">');
|
|
writeOutput('Amount : #money.getAmount()#<br />');
|
|
writeOutput('Status : #gemResponse.getStatus()#<br />');
|
|
writeOutput('TransID : #gemResponse.getTransactionID()#<br />');
|
|
writeOutput('TokenID : #gemResponse.getTokenID()#<br />');
|
|
writeOutput('CVV Rsp : (#account.getVerificationValue()#) - #gemResponse.getCVVCode()# - #gemResponse.getCVVMessage()#<br />');
|
|
writeOutput('AVS Rsp : #gemResponse.getAVSCode()# - #gemResponse.getAVSMessage()#<br />');
|
|
writeOutput('Auth Rsp : #gemResponse.getMessage()#<p />');
|
|
|
|
// Credit - Failure expected
|
|
|
|
gemResponse = gw.credit(money, gemResponse.getTransactionID(), options);
|
|
|
|
writeOutput("Credit - Failure expected - you can only credit a transaction that has been through the nightly batch settlement.<br />");
|
|
writeOutput('<div style="font-family:Courier;">');
|
|
writeOutput('Amount : #money.getAmount()#<br />');
|
|
writeOutput('Status : #gemResponse.getStatus()#<br />');
|
|
writeOutput('TransID : #gemResponse.getTransactionID()#<br />');
|
|
writeOutput('TokenID : #gemResponse.getTokenID()#<br />');
|
|
writeOutput('Auth Rsp : #gemResponse.getMessage()#<p />');
|
|
|
|
//Authorize - Test CVV
|
|
|
|
variables.cvvList = "123,456,789,012,345";
|
|
money.setCents(195); // goEMerchant uses specific dollar amounts for test cases
|
|
|
|
for(variables.cvv = 1; variables.cvv < 6; variables.cvv++)
|
|
{
|
|
account.setVerificationValue(listGetAt(variables.cvvList, variables.cvv));
|
|
options.order_id = "1234ORDER#dateFormat(now(), 'yyyymmdd')##timeformat(now(), 'HHmmssL')#";
|
|
gemResponse = gw.authorize(money, account, options);
|
|
|
|
writeOutput("Authorize - Test CVV<br />");
|
|
writeOutput('<div style="font-family:Courier;">');
|
|
writeOutput('Amount : #money.getAmount()#<br />');
|
|
writeOutput('Status : #gemResponse.getStatus()#<br />');
|
|
writeOutput('TransID : #gemResponse.getTransactionID()#<br />');
|
|
writeOutput('TokenID : #gemResponse.getTokenID()#<br />');
|
|
writeOutput('CVV Rsp : (#account.getVerificationValue()#) - #gemResponse.getCVVCode()# - #gemResponse.getCVVMessage()#<br />');
|
|
writeOutput('AVS Rsp : #gemResponse.getAVSCode()# - #gemResponse.getAVSMessage()#<br />');
|
|
writeOutput('Auth Rsp : #gemResponse.getMessage()#<p />');
|
|
getPageContext().getOut().flush();
|
|
}
|
|
|
|
// Settle (capture) - Success expected
|
|
|
|
account.setVerificationValue();
|
|
gemResponse = gw.capture(money, gemResponse.getTransactionID(), options);
|
|
|
|
writeOutput("Settle (capture) - Success expected<br />");
|
|
writeOutput('<div style="font-family:Courier;">');
|
|
writeOutput('Amount : #money.getAmount()#<br />');
|
|
writeOutput('Status : #gemResponse.getStatus()#<br />');
|
|
writeOutput('TransID : #gemResponse.getTransactionID()#<br />');
|
|
writeOutput('TokenID : #gemResponse.getTokenID()#<br />');
|
|
writeOutput('CVV Rsp : (#account.getVerificationValue()#) - #gemResponse.getCVVCode()# - #gemResponse.getCVVMessage()#<br />');
|
|
writeOutput('AVS Rsp : #gemResponse.getAVSCode()# - #gemResponse.getAVSMessage()#<br />');
|
|
writeOutput('Auth Rsp : #gemResponse.getMessage()#<p />');
|
|
|
|
//Authorize - Test Decline
|
|
|
|
for(variables.cents = 200; variables.cents <= 454; variables.cents++) // there are some gaps that are not specific errors but you will get a decline
|
|
{
|
|
options.order_id = "1234ORDER#dateFormat(now(), 'yyyymmdd')##timeformat(now(), 'HHmmssL')#";
|
|
money.setCents(variables.cents); // goEMerchant uses specific dollar amounts for test cases
|
|
gemResponse = gw.authorize(money, account, options);
|
|
|
|
writeOutput("Authorize - Test Decline<br />");
|
|
writeOutput('<div style="font-family:Courier;">');
|
|
writeOutput('Amount : #money.getAmount()#<br />');
|
|
writeOutput('Status : #gemResponse.getStatus()#<br />');
|
|
writeOutput('TransID : #gemResponse.getTransactionID()#<br />');
|
|
writeOutput('TokenID : #gemResponse.getTokenID()#<br />');
|
|
writeOutput('CVV Rsp : (#account.getVerificationValue()#) - #gemResponse.getCVVCode()# - #gemResponse.getCVVMessage()#<br />');
|
|
writeOutput('AVS Rsp : #gemResponse.getAVSCode()# - #gemResponse.getAVSMessage()#<br />');
|
|
writeOutput('Auth Rsp : #gemResponse.getMessage()#<p />');
|
|
getPageContext().getOut().flush();
|
|
}
|
|
|
|
options.order_id = "1234ORDER#dateFormat(now(), 'yyyymmdd')##timeformat(now(), 'HHmmssL')#";
|
|
money.setCents(493); // goEMerchant uses specific dollar amounts for test cases
|
|
gemResponse = gw.authorize(money, account, options);
|
|
|
|
writeOutput("Authorize - Test Decline<br />");
|
|
writeOutput('<div style="font-family:Courier;">');
|
|
writeOutput('Amount : #money.getAmount()#<br />');
|
|
writeOutput('Status : #gemResponse.getStatus()#<br />');
|
|
writeOutput('TransID : #gemResponse.getTransactionID()#<br />');
|
|
writeOutput('TokenID : #gemResponse.getTokenID()#<br />');
|
|
writeOutput('CVV Rsp : (#account.getVerificationValue()#) - #gemResponse.getCVVCode()# - #gemResponse.getCVVMessage()#<br />');
|
|
writeOutput('AVS Rsp : #gemResponse.getAVSCode()# - #gemResponse.getAVSMessage()#<br />');
|
|
writeOutput('Auth Rsp : #gemResponse.getMessage()#<p />');
|
|
|
|
options.order_id = "1234ORDER#dateFormat(now(), 'yyyymmdd')##timeformat(now(), 'HHmmssL')#";
|
|
money.setCents(999); // goEMerchant uses specific dollar amounts for test cases
|
|
gemResponse = gw.authorize(money, account, options);
|
|
|
|
writeOutput("Authorize - Test Decline<br />");
|
|
writeOutput('<div style="font-family:Courier;">');
|
|
writeOutput('Amount : #money.getAmount()#<br />');
|
|
writeOutput('Status : #gemResponse.getStatus()#<br />');
|
|
writeOutput('TransID : #gemResponse.getTransactionID()#<br />');
|
|
writeOutput('TokenID : #gemResponse.getTokenID()#<br />');
|
|
writeOutput('CVV Rsp : (#account.getVerificationValue()#) - #gemResponse.getCVVCode()# - #gemResponse.getCVVMessage()#<br />');
|
|
writeOutput('AVS Rsp : #gemResponse.getAVSCode()# - #gemResponse.getAVSMessage()#<br />');
|
|
writeOutput('Auth Rsp : #gemResponse.getMessage()#<p />');
|
|
|
|
writeOutput('</div>');
|
|
|
|
</cfscript>
|
|
|