0

PHP を使用して First Data e4 Gateway を統合しようとしています。VinceG/php-first-data-api PHP First Data Service API クラスをダウンロードしました。コードにはいくつかの例が付属しています。

端末ID(API_LOGIN)とパスワード(32文字列)を持っています。

私を混乱させるのは、サンプルの 1 つを使用するときに、実稼働 URL ではなくデモ URL を使用することをクラスに伝える方法がわからないことです。

このクラスには 2 つの定数があります。

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

First Data コンソールで、パスワードを生成したときに、v12 API を使用すると表示/transaction/v12されたので、protected $apiVersion = 'v12';

私がやりたいことは、First Data e4 を使用して最初の開発トランザクションを作成することだけです。私はまだどんな種類の応答も得ていません。明らかに、始めるには多くの手を握る必要があります。

私が BalancedPayments を使用するように Web サイトをセットアップしたとき、サポート フォーラムが非常に充実していて、かなり迅速に実行することができました。First Data には多くのドキュメントがありますが、何らかの理由で適切な PHP の例がほとんどありません。

VinceG/php-first-data-api をすでに習得している専門家がいて、動作するスクリプトを 1 つ作成するのを手伝ってくれることを願っています。

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
}
4

1 に答える 1

0

私の一番の問題は、 First Data でデモ口座を作成していなかった (すぐに承認を得て申請した) こと でした。これが First Data とは別物だとは知りませんでした。たとえば、Balanced Payments では、アカウントが 1 つあり、テスト値を使用してテスト URL でスクリプトを実行できます。

管理パネルから、[ターミナル] をクリックし、次に 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);
于 2014-12-09T19:24:06.520 に答える