firstdata — Как вызвать демонстрационный URL, используя VinceG php-first-data-api

Я пытаюсь интегрировать First Data e4 Gateway с помощью PHP. Я скачал VinceG / PHP-первых данных API PHP First Data Service API класс. Код поставляется с некоторыми примерами.

У меня есть идентификатор терминала (API_LOGIN) и пароль (строка из 32 символов).

Что меня смущает, так это то, что когда я использую один из примеров, я не знаю, как сказать классу, что я хочу использовать демонстрационный URL, а не рабочий URL.

Класс поставляется с двумя константами:

const LIVE_API_URL = 'https://api.globalgatewaye4.firstdata.com/transaction/';
const TEST_API_URL = 'https://api.demo.globalgatewaye4.firstdata.com/transaction/';

В консоли First Data, когда я сгенерировал свой пароль, он сказал использовать API v12, /transaction/v12Я изменил protected $apiVersion = 'v12';

Все, что я хочу сделать, это написать свою первую транзакцию разработки, используя First Data e4. Я еще не получил какой-либо ответ. Очевидно, мне нужно много руки, чтобы начать.

Когда я настроил веб-сайт для использования BalancedPayments, у них был довольно хороший форум поддержки, и я смог запустить его довольно быстро. First Data имеет много документации, но по некоторым причинам не так много хороших примеров PHP.

Я надеюсь, что какой-то эксперт уже освоил VinceG / php-first-data-api и может помочь мне написать один работающий скрипт.

Вот код предварительной авторизации, который я использую, который вызывает класс FirstData:

// Pre Auth Transaction Type
define("API_LOGIN",     "B123456-01");
define("API_KEY",    "xxxxxxxxxxyyyyyyyyyyyyzzzzzzzzzz");

$data = array();

$data['type'] = "00";
$data['number'] = "4111111111111111";
$data['name'] = "Cyrus Vance";
$data['exp'] = "0618";
$data['amount'] = "100.00";
$data['zip'] = "33333";
$data['cvv'] = "123";
$data['address'] = "1111 OCEAN BLVD MIAMI FL";
$orderId = "0001";

require_once("FirstData.php");

$firstData = new FirstData(API_LOGIN, API_KEY, true);

// Charge
$firstData->setTransactionType(FirstData::TRAN_PREAUTH);
$firstData->setCreditCardType($data['type'])
->setCreditCardNumber($data['number'])
->setCreditCardName($data['name'])
->setCreditCardExpiration($data['exp'])
->setAmount($data['amount'])
->setReferenceNumber($orderId);

if($data['zip']) {
$firstData->setCreditCardZipCode($data['zip']);
}

if($data['cvv']) {
$firstData->setCreditCardVerification($data['cvv']);
}

if($data['address']) {
$firstData->setCreditCardAddress($data['address']);
}

$firstData->process();

// Check
if($firstData->isError()) {
echo "!!!";
// there was an error
} else {
echo "@@@";
// transaction passed
}

0

Решение

Моя проблема номер один заключалась в том, что я не создал (подал заявку на мгновенное одобрение)
демо-счет на First Data. Я не осознавал, что это было отдельной вещью в First Data. Например, в Сбалансированных платежах у вас есть одна учетная запись, и вы можете запустить свой скрипт по тестовой ссылке с тестовыми значениями.

На панели администрирования нажмите «Терминалы», затем номер своего шлюза в строке ECOMM (будет выглядеть примерно как AH1234-03), затем нажмите «Генерировать» для пароля, сохраните его в личных заметках), затем нажмите «ОБНОВИТЬ».

Теперь замените значения ваших параметров в ваших тестовых скриптах. Я использую переменный блок присваивания, который выглядит примерно так:

define("API_LOGIN",     "AH1234-05"); //fake
define("API_KEY",    "44p7797xxx790098z1z2n6f270ys1z0x"); //fake

$data = array();

$data['type'] = "03";
$data['number'] = "4111111111111111";
$data['name'] = "Cyrus Vancce";
$data['exp'] = "0618";
$data['amount'] = "100.00";
$data['zip'] = "33320";
$data['cvv'] = "123";
$data['address'] = "1234 N OCEAN BLVD MIAMI BEACH FL";
$orderId = "0001";

require_once("FirstData.php");

$firstData = new FirstData(API_LOGIN, API_KEY, true);

в конце тестовых сценариев VinceG я выводю свой ответ шлюза с помощью print_r, например так:

$firstData->process();

// Check
if($firstData->isError()) {
echo "!!!";
// there was an error
} else {
echo "@@@";
// transaction passed
}
echo "<pre>";
print_r($firstData);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]