定制 first-data/gateway 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

first-data/gateway

最新稳定版本:v1.14.0

Composer 安装命令:

composer require first-data/gateway

包简介

PHP SDK to be used with First Data IPG API v21.5.0. This SDK has been created and packaged to offer the easiest way to integrate your application into the First Data Gateway. This SDK gives you the ability to run transactions such as sales, preauthorizations, postauthorizations, credits, voids, and

README 文档

README

IPG API for payment processing.

IPG API Specification.

  • API version: 21.5.0
  • Package version: 1.14.0
  • Build package: org.openapitools.codegen.languages.PhpClientCodegen

Requirements

PHP 5.5 and later

Installation & Usage

Composer

To install the bindings via Composer, add the following to composer.json:

{ "repositories": [ { "type": "git", "url": "https://github.com//.git" } ], "require": { "/": "*@dev" } } 

Repo Organization

  • FirstData\FirstApi\Client\api: code auto-generated from api specification
  • FirstData\FirstApi\Client\simple: code manually created for simpler API

API Methods/Endpoints

All URIs are relative to https://cert.api.firstdata.com/gateway

Interface Method HTTP request Description
AuthenticationApi getAccessToken POST /v2/authentication/access-tokens Generate an access token for user authentication.
CardInfoLookupApi cardInfoLookup POST /v2/card-information Card information lookUp
CardVerificationApi verifyCard POST /v2/card-verification Verify a payment card.
CurrencyConversionApi getExchangeRate POST /v2/exchange-rates Generate dynamic currency conversion transactions
FraudDetectApi scoreOnly POST /v2/fraud/score-only Score a transaction for fraud.
FraudDetectApi clientRegistration POST /v2/fraud/client-registration Client Registration for fraud detect.
FraudDetectApi paymentRegistration POST /v2/fraud/payment-registration Payment Registration for fraud detect.
OrderApi orderInquiry GET /v2/orders/{order-id} Retrieve the state of an order
OrderApi orderPostAuth POST /v2/orders/{order-id}/postauth Capture/complete an already existing order.
OrderApi orderReturnTransaction POST /v2/orders/{order-id}/return Return/refund an order.
PaymentApi finalizeSecureTransaction PATCH /v2/payments/{transaction-id} Update a 3DSecure or UnionPay payment and continue processing.
PaymentApi performPaymentPostAuthorisation POST /v2/payments/{transaction-id}/postauth Capture/complete a transaction.
PaymentApi primaryPaymentTransaction POST /v2/payments Generate a primary transaction.
PaymentApi returnTransaction POST /v2/payments/{transaction-id}/return Return/refund a transaction.
PaymentApi transactionInquiry GET /v2/payments/{transaction-id} Retrieve the state of a transaction.
PaymentApi voidTransaction POST /v2/payments/{transaction-id}/void Reverse a previous action on an existing transaction.
PaymentSchedulesApi cancelPaymentSchedule DELETE /v2/payment-schedules/{order-id} Cancel a gateway payment schedule.
PaymentSchedulesApi createPaymentSchedule POST /v2/payment-schedules Use this to create a gateway payment schedule.
PaymentSchedulesApi inquiryPaymentSchedule GET /v2/payment-schedules/{order-id} View a gateway payment schedule.
PaymentSchedulesApi updatePaymentSchedule PATCH /v2/payment-schedules/{order-id} Update a gateway payment schedule.
PaymentTokenApi createPaymentToken POST /v2/payment-tokens Create a payment token from a payment card.
PaymentTokenApi deletePaymentToken DELETE /v2/payment-tokens/{token-id} Delete a payment token.
PaymentTokenApi getPaymentTokenDetails GET /v2/payment-tokens/{token-id} Get payment token details.
PaymentUrlApi createPaymentUrl POST /v2/payment-url Create a payment URL.
PaymentUrlApi deletePaymentUrl DELETE /v2/payment-url Delete a payment URL.
PaymentUrlApi paymentUrlDetail GET /v2/payment-url Retrive the state of a payment URL.
for store.

Code Overview

MerchantCredentials

namespace FirstData\FirstApi\Client\Simple; class MerchantCredentials { /**  * @param string $apiSecret  * @param string $apiKey  */ public function __construct($apiSecret, $apiKey); // ... }

ClientContext

namespace FirstData\FirstApi\Client\Simple; class ClientContext { /**  * base path defaults to https://cert.api.firstdata.com/gateway  *  * @param MerchantCredentials $creds  * @param string $apiBasePath (optional)  * @param string $defaultRegion (optional)  * @param string $defaultStoreId (optional)  * @return ClientContext  */ public static function create(MerchantCredentials $creds, $apiBasePath = ClientContext::DEFAULT_BASE_PATH, $defaultRegion = null, $defaultStoreId = null); /**  * @return ClientFactory  */ public function getFactory(); /**  * @param string $basePath  */ public function setApiBasePath($basePath); // ... }

ClientFactory

namespace FirstData\FirstApi\Client\Simple; class ClientFactory { /**  * @return AuthenticationApi  */ public function getAuthenticationApi(); /**  * @return CardInfoLookupApi  */ public function getCardInfoLookupApi(); /**  * @return CardVerificationApi  */ public function getCardVerificationApi(); /**  * @return CurrencyConversionApi  */ public function getCurrencyConversionApi(); /**  * @return FraudDetectApi  */ public function getFraudDetectApi(); /**  * @return OrderApi  */ public function getOrderApi(); /**  * @return PaymentApi  */ public function getPaymentApi(); /**  * @return PaymentSchedulesApi  */ public function getPaymentSchedulesApi(); /**  * @return PaymentTokenApi  */ public function getPaymentTokenApi(); /**  * @return PaymentUrlApi  */ public function getPaymentUrlApi(); // ... }

AuthenticationApi

namespace FirstData\FirstApi\Client\Simple; use FirstData\FirstApi\Client\Model\AccessTokenResponse; use FirstData\FirstApi\Client\Model\ErrorResponse; class AuthenticationApi { /**  * @return AccessTokenResponse|ErrorResponse  */ public function authenticationAccessTokensPost(); // ... }

CardInfoLookupApi

namespace FirstData\FirstApi\Client\Simple; use FirstData\FirstApi\Client\Model\CardInfoLookupRequest; use FirstData\FirstApi\Client\Model\CardInfoLookupResponse; use FirstData\FirstApi\Client\Model\ErrorResponse; class CardInfoLookupApi { /**  * @param CardInfoLookupRequest $payload  * @param string $region (optional)  * @return CardInfoLookupResponse|ErrorResponse  */ public function cardInfoLookup(CardInfoLookupRequest $payload, $region = null); // ... }

CardVerificationApi

namespace FirstData\FirstApi\Client\Simple; use FirstData\FirstApi\Client\Model\CardVerificationRequest; use FirstData\FirstApi\Client\Model\TransactionResponse; use FirstData\FirstApi\Client\Model\ErrorResponse; class CardVerificationApi { /**  * @param CardVerificationRequest $payload  * @param string $region (optional)  * @return TransactionResponse|ErrorResponse  */ public function verifyCard(CardVerificationRequest $payload, $region = null); // ... }

CurrencyConversionApi

namespace FirstData\FirstApi\Client\Simple; use FirstData\FirstApi\Client\Model\ExchangeRateRequest; use FirstData\FirstApi\Client\Model\ExchangeRateResponse; use FirstData\FirstApi\Client\Model\ErrorResponse; class CurrencyConversionApi { /**  * @param ExchangeRateRequest $payload  * @param string $region (optional)  * @return ExchangeRateResponse|ErrorResponse  */ public function getExchangeRate(ExchangeRateRequest $payload, $region = null); // ... }

FraudDetectApi

namespace FirstData\FirstApi\Client\Simple; use FirstData\FirstApi\Client\Model\ScoreOnlyRequest; use FirstData\FirstApi\Client\Model\ScoreOnlyResponse; use FirstData\FirstApi\Client\Model\ClientRegistration; use FirstData\FirstApi\Client\Model\PaymentRegistration; use FirstData\FirstApi\Client\Model\FraudRegistrationResponse; use FirstData\FirstApi\Client\Model\ErrorResponse; class FraudDetectApi { /**  * @param ScoreOnlyRequest $payload  * @param string $region (optional)  * @return ScoreOnlyResponse|ErrorResponse  */ public function scoreOnly(ScoreOnlyRequest $payload, $region = null); /**  * Operation Client Registration  *  * CLient Registration for fraud  *  * @param ClientRegistration $payload payload (required)  * @param string $region The region where client wants to process the transaction (optional)  *  * @throws ApiException on non-2xx response  * @throws InvalidArgumentException  * @return FraudRegistrationResponse|ErrorResponse  */ public function fraudClientRegistrationPost(ClientRegistration $payload,$region = null); /**  * Operation Payment Registration  *  * Payment Registration for fraud  *  * @param PaymentRegistration $payload payload (required)  * @param string $region The region where client wants to process the transaction (optional)  *  * @throws ApiException on non-2xx response  * @throws InvalidArgumentException  * @return FraudRegistrationResponse|ErrorResponse  */ public function fraudPaymentRegistrationPost(PaymentRegistration $payload,$region = null); // ... }

OrderApi

namespace FirstData\FirstApi\Client\Simple; use FirstData\FirstApi\Client\Model\OrderResponse; use FirstData\FirstApi\Client\Model\SecondaryTransaction; use FirstData\FirstApi\Client\Model\TransactionResponse; use FirstData\FirstApi\Client\Model\ErrorResponse; class OrderApi { /**  * @param string $orderId  * @param string $region (optional)  * @param string $storeId (optional)  * @return OrderResponse|ErrorResponse  */ public function orderInquiry($orderId, $region = null, $storeId = null); /**  * @param string $orderId  * @param SecondaryTransaction $payload  * @param string $region (optional)  * @param string $storeId (optional)  * @return TransactionResponse|ErrorResponse  */ public function submitSecondaryTransaction($orderId, SecondaryTransaction $payload, $region = null, $storeId = null); }

PaymentApi

namespace FirstData\FirstApi\Client\Simple; use FirstData\FirstApi\Client\Model\AuthenticationVerificationRequest; use FirstData\FirstApi\Client\Model\PrimaryTransaction; use FirstData\FirstApi\Client\Model\SecondaryTransaction; use FirstData\FirstApi\Client\Model\TransactionResponse; use FirstData\FirstApi\Client\Model\ErrorResponse; class PaymentApi { /**  * @param string $transactionId  * @param AuthenticationResponseVerificationRequest $payload  * @param string $region (optional)  * @return TransactionResponse|ErrorResponse  */ public function finalizeSecureTransaction($transactionId, AuthenticationVerificationRequest $payload, $region = null); /**  * @param PrimaryTransaction $payload  * @param string $region (optional)  * @return TransactionResponse|ErrorResponse  */ public function primaryPaymentTransaction(PrimaryTransaction $payload, $region = null); /**  * @param string $transactionId  * @param SecondaryTransaction $payload  * @param string $region (optional)  * @param string $storeId (optional)  * @return TransactionResponse|ErrorResponse  */ public function secondaryPaymentTransaction($transactionId, SecondaryTransaction $payload, $region = null, $storeId = null); /**  * @param string $transactionId  * @param string $region (optional)  * @param string $storeId (optional)  * @return TransactionResponse|ErrorResponse  */ public function transactionInquiry($transactionId, $region = null, $storeId = null); // ... }

PaymentSchedulesApi

namespace FirstData\FirstApi\Client\Simple; use FirstData\FirstApi\Client\Model\PaymentSchedulesRequest; use FirstData\FirstApi\Client\Model\PaymentSchedulesResponse; use FirstData\FirstApi\Client\Model\RecurringPaymentDetailsResponse; use FirstData\FirstApi\Client\Model\ErrorResponse; class PaymentSchedulesApi { /**  * @param string $orderId  * @param string $region (optional)  * @param string $storeId (optional)  * @return PaymentSchedulesResponse|ErrorResponse  */ public function cancelPaymentSchedule($orderId, $region = null, $storeId = null); /**  * @param PaymentSchedulesRequest $payload  * @param string $region (optional)  * @return PaymentSchedulesResponse|ErrorResponse  */ public function createPaymentSchedule(PaymentSchedulesRequest $payload, $region = null); /**  * @param string $orderId  * @param string $region (optional)  * @param string $storeId (optional)  * @return RecurringPaymentDetailsResponse|ErrorResponse  */ public function inquiryPaymentSchedule($orderId, $region = null, $storeId = null); /**  * @param string $orderId  * @param PaymentSchedulesRequest $payload  * @param string $region (optional)  * @param string $storeId (optional)  * @return PaymentSchedulesResponse|ErrorResponse  */ public function updatePaymentSchedule($orderId, PaymentSchedulesRequest $payload, $region = null, $storeId = null); // ... }

PaymentTokenApi

namespace FirstData\FirstApi\Client\Simple; use FirstData\FirstApi\Client\Model\PaymentTokenizationRequest; use FirstData\FirstApi\Client\Model\PaymentTokenizationResponse; use FirstData\FirstApi\Client\Model\ErrorResponse; class PaymentTokenApi { /**  * @param PaymentTokenizationRequest $payload  * @param string $authorization (optional)  * @param string $region (optional)  * @return PaymentTokenizationResponse|ErrorResponse  */ public function createPaymentToken(PaymentTokenizationRequest $payload, $authorization = null, $region = null); /**  * @param string $tokenId  * @param string $authorization (optional)  * @param string $region (optional)  * @param string $storeId (optional)  * @return PaymentTokenizationResponse|ErrorResponse  */ public function deletePaymentToken($tokenId, $authorization = null, $region = null, $storeId = null); /**  * @param string $tokenId  * @param string $authorization (optional)  * @param string $region (optional)  * @param string $storeId (optional)  * @return PaymentTokenizationResponse|ErrorResponse  */ public function getPaymentTokenDetails($tokenId, $authorization = null, $region = null, $storeId = null) // ... }

PaymentUrlApi

namespace FirstData\FirstApi\Client\Simple; use FirstData\FirstApi\Client\Model\PaymentUrlRequest; use FirstData\FirstApi\Client\Model\PaymentUrlResponse; use FirstData\FirstApi\Client\Model\PaymentUrlDetailResponse; use FirstData\FirstApi\Client\Model\ErrorResponse; class PaymentUrlApi { /**  * @param PaymentUrlRequest $payload  * @param string $region (optional)  * @return PaymentUrlResponse|ErrorResponse  */ public function createPaymentUrl(PaymentUrlRequest $payload, $region = null); /**  * Operation deletePaymentUrl  *  * Delete a payment URL.  *  * @param transactionId  * @param orderId  * @param paymentUrlId  * @param transactionTime  * @param storeId  * @param string $region The region where client wants to process the transaction (optional)  *  * @throws ApiException on non-2xx response  * @throws InvalidArgumentException  * @return PaymentUrlResponse|ErrorResponse  */ public function deletePaymentUrl($region = null,$storeId = null,$transactionId = null,$orderId = null,$paymentUrlId = null,$transactionTime = null); /**  * Operation paymentUrlDetailResponse  *  * get detials of a payment URL.  *  * @param fromDate(required)  * @param orderId  * @param toDate(required)  * @param merchantTransactionId  * @param status  * @param storeId  * @param string $region The region where client wants to process the transaction (optional)  *  * @throws ApiException on non-2xx response  * @throws InvalidArgumentException  * @return PaymentUrlResponse|ErrorResponse  */ public function paymentUrlDetail($region = null,$storeId = null,$fromDate,$toDate,$orderId = null,$merchantTransactionId = null,$status = null); // ... }

first-data/gateway 适用场景与选型建议

first-data/gateway 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 26.75k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 04 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「payment」 「sdk」 「gateway」 「developer」 「first data」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 first-data/gateway 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 first-data/gateway 我们能提供哪些服务?
定制开发 / 二次开发

基于 first-data/gateway 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 26.75k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 35
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 4
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04