CodeIgniter Forums
Authorize.Net (net\authorize\api) Helper - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Using CodeIgniter (https://forum.codeigniter.com/forumdisplay.php?fid=5)
+--- Forum: Libraries & Helpers (https://forum.codeigniter.com/forumdisplay.php?fid=11)
+--- Thread: Authorize.Net (net\authorize\api) Helper (/showthread.php?tid=72281)



Authorize.Net (net\authorize\api) Helper - dbrooke - 11-29-2018

Hello CI patrons.

I am just starting an integration for the latest Authorize.Net PHP SDK. 
I couldn't find an example for the newer net\authorize\api method, so I thought I'd start the thread here.

I am planning on this structure:
- Custom library for most of the code in 'libraries'. 
- core -> MY_Controller to store some constants.

The idea is to be able to load the library in the controller as well as call the function there.

Comments welcome if there is a better idea... otherwise, I'll post some code or questions when I have them.


RE: Authorize.Net (net\authorize\api) Helper - dbrooke - 12-03-2018

Here is a (very) brief overview of what I did to implement the basic charge CC sample code located here:
https://github.com/AuthorizeNet/sample-code-php/blob/master/PaymentTransactions/charge-credit-card.php

This should be a good compass to use in addition to AuthNet's instructions.

First, init your AuthNet sandbox, etc as the README suggests on github.
https://github.com/AuthorizeNet/sdk-php/blob/master/README.md



/core
- I happen to put my constants in a MY_Contoller.php file.
$this->site_constants['ANET_mode'] = "TEST";
// AuthNet Test (Sandbox)
$this->site_constants['MERCHANT_LOGIN_ID'] = "<yourid>";
$this->site_constants['MERCHANT_TRANSACTION_KEY'] = "<yourkey>";



/libraries
- create an Authorize_net.php php class file
- Note: **special trick** include the autoload.php and 'use' operators / URL's at the very top of the file *before* define!!.. ie:
require 'vendor/autoload.php';
use net\authorize\api\contract\v1 as AnetAPI;
use net\authorize\api\controller as AnetController;
define("AUTHORIZENET_LOG_FILE", "phplog");

^ very top!! ;-)

// create your method in this class.. ie.:
public function fAuthNetPurchase($vPayAmount, $vPayWebOrdID = 0, $vPayCC, $vPayExpire, $vPayCVV, $vPayZip, $vPayFName, $vPayLName, $vPayPhone, $vPayEmail, $vPayDescription)

- <most of sample code continues here... all the way to:>

// Create the controller and get the response
$controller = new AnetController\CreateTransactionController($request);

- I then created a switch using the constants above to switch between live and sandbox:
// LIVE or TEST
if ($vANETMode == 'TEST') {
// TEST URL
$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX);
} else {
// LIVE URL
$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment:TongueRODUCTION);
}
return $response;



/controllers
// Back in your controller, create your logic (using rest of the SDK sample code) in:
- start with loading the library:
$this->load->library('authorize_net');

- call to the method:
$data['vPayResponse'] = $this->authorize_net->fAuthNetPurchase($vPayAmount, $vPayWebOrdID, $vPayCC, $vPayExpire, $vPayCVV, $vPayZip, $vPayFName, $vPayLName, $vPayCleanPhone, $vPayEmail, $vOrdDescription);

You can then reference the rest of SDK sample code to create your response parse logic and to formulate error reporting.


Works great!

If you need help or you need a developer.. shoot me a PM.

Good luck!
Donovan