Skip to content

Latest commit

 

History

History
85 lines (74 loc) · 6.5 KB

MIGRATING.md

File metadata and controls

85 lines (74 loc) · 6.5 KB

Migrating from Legacy Authorize.Net Classes

Authorize.Net no longer supports several legacy classes, including AuthorizeNetAIM.php, AuthorizenetSIM.php, and others listed below, as part of PHP-SDK. If you are using any of these, we recommend that you update your code to use the new Authorize.Net API classes.

For details on the deprecation and replacement of legacy Authorize.Net APIs, visit https://developer.authorize.net/api/upgrade_guide/.

Full list of classes that are no longer supported

Class New Feature Sample Codes directory/repository
AuthorizeNetAIM.php PaymentTransactions sample-code-php/PaymentTransactions
AuthorizeNetARB.php RecurringBilling sample-code-php/RecurringBilling
AuthorizeNetCIM.php CustomerProfiles sample-code-php/CustomerProfiles
Hosted CIM Accept Customer Not available
AuthorizeNetCP.php PaymentTransactions sample-code-php/PaymentTransactions
AuthorizeNetDPM.php Accept.JS Sample Accept Application
AuthorizeNetSIM.php Accept Hosted Not available
AuthorizeNetSOAP.php PaymentTransactions sample-code-php/PaymentTransactions
AuthorizeNetTD.php TransactionReporting sample-code-php/TransactionReporting/

Example

Old AuthorizeNetAIM example:

define("AUTHORIZENET_API_LOGIN_ID", "YOURLOGIN");
define("AUTHORIZENET_TRANSACTION_KEY", "YOURKEY");
define("AUTHORIZENET_SANDBOX", true);
$sale           = new AuthorizeNetAIM;
$sale->amount   = "5.99";
$sale->card_num = '6011000000000012';
$sale->exp_date = '04/15';
$response = $sale->authorizeAndCapture();
if ($response->approved) {
 $transaction_id = $response->transaction_id;
}

Corresponding new model code (charge-credit-card):

require 'vendor/autoload.php';
use net\authorize\api\contract\v1 as AnetAPI;
use net\authorize\api\controller as AnetController;

define("AUTHORIZENET_LOG_FILE", "phplog");
$merchantAuthentication = new AnetAPI\MerchantAuthenticationType();
$merchantAuthentication->setName("YOURLOGIN");
$merchantAuthentication->setTransactionKey("YOURKEY");
// Create the payment data for a credit card
$creditCard = new AnetAPI\CreditCardType();
$creditCard->setCardNumber("6011000000000012");
$creditCard->setExpirationDate("2015-04");
$creditCard->setCardCode("123");

// Add the payment data to a paymentType object
$paymentOne = new AnetAPI\PaymentType();
$paymentOne->setCreditCard($creditCard);

$transactionRequestType = new AnetAPI\TransactionRequestType();
$transactionRequestType->setTransactionType("authCaptureTransaction");
$transactionRequestType->setAmount("5.99");
$transactionRequestType->setPayment($paymentOne);

// Assemble the complete transaction request
$request = new AnetAPI\CreateTransactionRequest();
$request->setMerchantAuthentication($merchantAuthentication);
$request->setTransactionRequest($transactionRequestType);

// Create the controller and get the response
$controller = new AnetController\CreateTransactionController($request);
$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);

if ($response != null) {
// Check to see if the API request was successfully received and acted upon
if ($response->getMessages()->getResultCode() == "Ok") {
   // Since the API request was successful, look for a transaction response
   // and parse it to display the results of authorizing the card
   $tresponse = $response->getTransactionResponse();
     
   if ($tresponse != null && $tresponse->getMessages() != null) {
   echo " Successfully created transaction with Transaction ID: " . $tresponse->getTransId() . "\n";
   echo " Transaction Response Code: " . $tresponse->getResponseCode() . "\n";
   echo " Message Code: " . $tresponse->getMessages()[0]->getCode() . "\n";
   echo " Auth Code: " . $tresponse->getAuthCode() . "\n";
   echo " Description: " . $tresponse->getMessages()[0]->getDescription() . "\n";
   }
  }
}