vinceg/firstdataapi

First Data Api

1.0 2015-11-04 19:35 UTC

This package is auto-updated.

Last update: 2024-09-10 11:16:59 UTC


README

关注 @gabrielva

此组件提供了一个PHP包装器,用于向First Data支付处理器发送API调用。

它需要curl和php curl扩展。

特性

  • 支持所有交易类型。
  • 支持Transarmor令牌,可以在不存储实际卡号的情况下多次对信用卡进行扣费。

安装

现在可以使用Composer安装此库。

将以下内容添加到您的项目composer.json中

	"require": {
        "vinceg/firstdataapi": "dev-master"
	},

使用组件

<?php
use VinceG\FirstDataApi\FirstData;

//
// 3rd Parameter sets debug mode on.  
// In debug mode, the demo gateway is used.  
// You will need to create a demo gateway account with First Data
// 
$firstData = new FirstData(API_LOGIN, API_KEY, true);

文档和示例

First Data 文档

API参考指南

在这些示例中

  • API_LOGIN是您的商业终端的终端网关ID。
  • API_KEY是在终端屏幕上生成的密码。

示例

预授权

// Pre Auth Transaction Type
$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()) {
	// there was an error
} else {
	// transaction passed
}

购买

// Purchase Transaction type
$firstData = new FirstData(API_LOGIN, API_KEY, true);

// Charge
$firstData->setTransactionType(FirstData::TRAN_PURCHASE);
$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()) {
	// there was an error
} else {
	// transaction passed
}

使用Transarmor令牌的购买

// Purchase Transaction type
$firstData = new FirstData(API_LOGIN, API_KEY, true);

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

$firstData->process();

// Check
if($firstData->isError()) {
	// there was an error
} else {
	// transaction passed
}

预授权完成

// Purchase Transaction type
$firstData = new FirstData(API_LOGIN, API_KEY, true);

// Charge
$firstData->setTransactionType(FirstData::TRAN_PREAUTHCOMPLETE);
$firstData->setCreditCardType($data['number'])
		->setTransArmorToken($data['token'])
		->setCreditCardName($data['name'])
		->setCreditCardExpiration($data['exp'])
		->setAuthNumber($dat['auth_number'])
		->setAmount($data['amount'])
		->setReferenceNumber($orderId);

$firstData->process();

// Check
if($firstData->isError()) {
	// there was an error
} else {
	// transaction passed
}

退款

// Purchase Transaction type
$firstData = new FirstData(API_LOGIN, API_KEY, true);

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

$firstData->process();

// Check
if($firstData->isError()) {
	// there was an error
} else {
	// transaction passed
}

作废

// Purchase Transaction type
$firstData = new FirstData(API_LOGIN, API_KEY, true);

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

$firstData->process();

// Check
if($firstData->isError()) {
	// there was an error
} else {
	// transaction passed
}

© Vadim Vincent Gabriel 关注 @gabrielva 2013

许可协议

MIT许可协议 (MIT)

版权所有 (c) 2013 - Vincent Gabriel

在此协议下,任何获得此软件及其相关文档副本(“软件”)的人均可免费使用该软件,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供方提供软件的人士行使上述权利,但需遵守以下条件

上述版权声明和本许可协议应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是基于合同、侵权或其他原因,是否与软件或软件的使用或其他交易有关。