shieldgate / sdk-php

此包的最新版本(1.2.0)没有可用的许可证信息。

ShieldGate PHP 客户端

1.2.0 2022-06-10 17:10 UTC

This package is auto-updated.

Last update: 2024-09-10 22:28:50 UTC


README

语言:: EN || ES

安装

通过 composer 安装(目前尚未托管在 packagist 上)

composer require shieldgate/sdk

用法

<?php

require 'vendor/autoload.php';

use Payment\Payment;

// First setup your credentials provided by ShieldGate
$applicationCode = "SOME_APP_CODE";
$applicationKey = "SOME_APP_KEY";

Payment::init($applicationCode, $applicationKey);

一旦设置了您的凭据,您就可以使用可用的资源。

可用资源

  • 可用方法:getListdelete
  • 收费
  • 可用方法:createauthorizecaptureverifyrefund
  • 现金
  • 可用方法:generateOrder

有关这些功能的完整文档请参见此处

列表

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

Payment::init($applicationCode, $aplicationKey);

$card = Payment::card();

// Success response
$userId = "1";
$listOfUserCards = $card->getList($userId);

$totalSizeOfCardList = $listOfUserCards->result_size;
$listCards = $listOfUserCards->cards;

// Get all data of response
$response = $listOfUserCards->getData();

// Catch fail response
try {
	$listOfUserCards = $card->getList("someUID");
} catch (PaymentErrorException $error) {
	// Details of exception
	echo $error->getMessage();
	// You can see the logs for complete information
}

收费

有关这些功能的完整文档请参见此处

创建新的收费

有关此功能的完整文档请参见此处

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

// Card token
$cardToken = "myAwesomeTokenCard";

$charge = Payment::charge();

$userDetails = [
    'id' => "1", // Field required
    'email' => "dev@shieldgate.mx" // Field required
];

$orderDetails = [
    'amount' => 100.00, // Field required
    'description' => "XXXXXX", // Field required
    'dev_reference' => "XXXXXX", // Field required
    'vat' => 0.00 // Field required 
];

try {
    $created = $charge->create($cardToken, $orderDetails, $userDetails);
} catch (PaymentErrorException $error) {
    // See the console output for complete information
    // Access to HTTP code from gateway service
    $code = $error->getCode();
    $message = $error->getMessage();
}

// Get transaction status
$status = $created->transaction->status;
// Get transaction ID
$transactionId = $created->transaction->id;
// Get authorization code
$authCode = $created->transaction->authorization_code;

授权收费

有关此服务的完整文档请参见此处

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

// Card token
$cardToken = "myAwesomeTokenCard";

$charge = Payment::charge();

$userDetails = [
    'id' => "1", // Field required
    'email' => "dev@shieldgate.mx" // Field required
];

$orderDetails = [
    'amount' => 100.00, // Field required
    'description' => "XXXXXX", // Field required
    'dev_reference' => "XXXXXX", // Field required
    'vat' => 0.00 // Field required 
];

try {
    $authorization = $charge->authorize($cardToken, $orderDetails, $userDetails);
} catch (PaymentErrorException $error) {
    // See the console output for complete information
    // Access to HTTP code from gateway service
    $code = $error->getCode();
    $message = $error->getMessage();
}

// Get transaction status
$status = $authorization->transaction->status;
// Get transaction ID
$transactionId = $authorization->transaction->id;
// Get authorization code
$authCode = $authorization->transaction->authorization_code;

捕获

有关此服务的完整文档请参见此处

需要执行授权过程

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

$charge = Payment::charge();

$authorization = $charge->authorize($cardToken, $orderDetails, $userDetails);
$transactionId = $authorization->transaction->id;

try {
    $capture = $charge->capture($transactionId);
} catch (PaymentErrorException $error) {
    // See the console output for complete information
    // Access to HTTP code from gwateway service
    $code = $error->getCode();
    $message = $error->getMessage();
}

// Get transaction status
$status = $capture->transaction->status;

// Make a capture with different amount
$newAmountForCapture = 1000.46;
$capture = $charge->capture($transactionId, $newAmountForCapture);

退款

有关此服务的完整文档请参见此处

需要执行创建过程

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

$charge = Payment::charge();

$created = $charge->create($cardToken, $orderDetails, $userDetails);
$transactionId = $created->transaction->id;

try {
    $refund = $charge->refund($transactionId);
} catch (PaymentErrorException $error) {
    // See the console output for complete information
    // Access to HTTP code from gateway service
    $code = $error->getCode();
    $message = $error->getMessage();
}

// Get status of refund
$status = $refund->status;
$detail = $refund->detail;

// Make a partial refund
$partialAmountToRefund = 10;
$refund = $charge->refund($transactionId, $partialAmountToRefund);

现金

生成订单

有关所有可用选项,请参见此处

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

$cash = Payment::cash();

$carrierDetails = [
    'id' => 'oxxo', // Field required
    'extra_params' => [ // Depends of carrier, for oxxo is required
        'user' => [ // For oxxo is required
            'name' => "Juan",
            'last_name' => "Perez"
        ]
    ]
];

$userDetails = [
   'id' => "1", // Field required
   'email' => "randm@mail.com" // Field required
];

$orderDetails = [
    'dev_reference' => "XXXXXXX", // Field required 
    'amount' => 100, // Field required
    'expiration_days' => 1, // Field required
    'recurrent' => false, // Field required
    'description' => "XXXXXX" // Field required
];

try {
    $order = $cash->generateOrder($carrierDetails, 
    $userDetails, 
    $orderDetails);
} catch (PaymentErrorException $error) {
    // See the console output for complete information
    // Access to HTTP code from gateway service
    $code = $error->getCode();
    $message = $error->getMessage();
}

// Get reference code
$referenceCode = $order->transaction->reference;
// Get expiration date
$expirationData = $order->transaction->expiration_date;
// Get order status
$status = $order->transaction->status;

运行单元测试

composer run test

=============================

安装

通过 composer 安装(目前尚未托管在 packagist 上)

composer require shieldgate/sdk

用法

<?php

require 'vendor/autoload.php';

use Payment\Payment;

// Primero configura las credenciales otorgadas por ShieldGate
$applicationCode = "SOME_APP_CODE";
$applicationKey = "SOME_APP_KEY";

Payment::init($applicationCode, $applicationKey);

一旦配置了您的凭据,您就可以使用可用的资源。

可用资源

  • 可用方法:getListdelete
  • 收费
  • 可用方法:createauthorizecaptureverifyrefund
  • 现金
  • 可用方法:generateOrder

查询此支付方式的完整文档此处

列表

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

Payment::init($applicationCode, $aplicationKey);

$card = Payment::card();

// Respuesta exitosa
$userId = "1";
$listOfUserCards = $card->getList($userId);

$totalSizeOfCardList = $listOfUserCards->result_size;
$listCards = $listOfUserCards->cards;

// Obtener los datos de la respuesta
$response = $listOfUserCards->getData();

// Manejo de errores en la respuesta
try {
	$listOfUserCards = $card->getList("someUID");
} catch (PaymentErrorException $error) {
	// Detalles de la excepción
	echo $error->getMessage();
	// Puedes ver los logs para información completa
}

使用令牌进行收费

查询此服务的完整文档此处

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

// Token de tarjeta
$cardToken = "myAwesomeTokenCard";

$charge = Payment::charge();

$userDetails = [
    'id' => "1", // Campo requerido
    'email' => "dev@shieldgate.mx" // Campo requerido
];

$orderDetails = [
    'amount' => 100.00, // Campo requerido
    'description' => "XXXXXX", // Campo requerido
    'dev_reference' => "XXXXXX", // Campo requerido
    'vat' => 0.00 // Campo requerido 
];

try {
    $created = $charge->create($cardToken, $orderDetails, $userDetails);
} catch (PaymentErrorException $error) {
    // Revisa la salida en consola para más información    
    // Acceso al código HTTP y el mensaje de error del servicio de la pasarela
    $code = $error->getCode();
    $message = $error->getMessage();
}

// Obtiene el estado de la transacción
$status = $created->transaction->status;
// Obtiene el ID de la transacción
$transactionId = $created->transaction->id;
// Obtiene el código de autorización de la transacción
$authCode = $created->transaction->authorization_code;

授权

查询此服务的完整文档此处

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

// Token de tarjeta
$cardToken = "myAwesomeTokenCard";

$charge = Payment::charge();

$userDetails = [
    'id' => "1", // Campo requerido
    'email' => "dev@shieldgate.mx" // Campo requerido
];

$orderDetails = [
    'amount' => 100.00, // Campo requerido
    'description' => "XXXXXX", // Campo requerido
    'dev_reference' => "XXXXXX", // Campo requerido
    'vat' => 0.00 // Campo requerido 
];

try {
    $authorization = $charge->authorize($cardToken, $orderDetails, $userDetails);
} catch (PaymentErrorException $error) {
    // Revisa la salida en consola para más información    
    // Acceso al código HTTP y el mensaje de error del servicio de la pasarela
    $code = $error->getCode();
    $message = $error->getMessage();
}

// Obtiene el estado de la transacción
$status = $authorization->transaction->status;
// Obtiene el ID de la transacción
$transactionId = $authorization->transaction->id;
// Obtiene el código de autorización de la transacción
$authCode = $authorization->transaction->authorization_code;

捕获

查询此服务的完整文档此处

首先需要执行授权

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

$charge = Payment::charge();

$authorization = $charge->authorize($cardToken, $orderDetails, $userDetails);
$transactionId = $authorization->transaction->id;

try {
    $capture = $charge->capture($transactionId);
} catch (PaymentErrorException $error) {
    // Revisa la salida en consola para más información    
    // Acceso al código HTTP y el mensaje de error del servicio de la pasarela
    $code = $error->getCode();
    $message = $error->getMessage();
}

// Obtiene el estado de la transacción
$status = $capture->transaction->status;

// Realiza la captura con un monto diferente (Consulta con el equipo de integraciones sobre las limitaciones de cada operador)
$newAmountForCapture = 1000.46;
$capture = $charge->capture($transactionId, $newAmountForCapture);

退款

查询此服务的完整文档此处

首先需要执行捕获收费

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

$charge = Payment::charge();

$created = $charge->create($cardToken, $orderDetails, $userDetails);
$transactionId = $created->transaction->id;

try {
    $refund = $charge->refund($transactionId);
} catch (PaymentErrorException $error) {
    // Revisa la salida en consola para más información    
    // Acceso al código HTTP y el mensaje de error del servicio de la pasarela
    $code = $error->getCode();
    $message = $error->getMessage();
}

// Obtiene el estado del reembolso
$status = $refund->status;
$detail = $refund->detail;

// Realiza un refund parcial (Consulta con el equipo de integraciones sobre las limitaciones de cada operador)
$partialAmountToRefund = 10;
$refund = $charge->refund($transactionId, $partialAmountToRefund);

现金

生成订单

请查阅有关此服务的完整文档这里

<?php

use Payment\Payment;
use Payment\Exceptions\PaymentErrorException;

$cash = Payment::cash();

$carrierDetails = [
    'id' => 'oxxo', // Campo requerido
    'extra_params' => [ // Depends of carrier, for oxxo is required
        'user' => [ // For oxxo is required
            'name' => "Juan",
            'last_name' => "Perez"
        ]
    ]
];

$userDetails = [
   'id' => "1", // Campo requerido
   'email' => "randm@mail.com" // Campo requerido
];

$orderDetails = [
    'dev_reference' => "XXXXXXX", // Campo requerido 
    'amount' => 100, // Campo requerido
    'expiration_days' => 1, // Campo requerido
    'recurrent' => false, // Campo requerido
    'description' => "XXXXXX" // Campo requerido
];

try {
    $order = $cash->generateOrder($carrierDetails, 
    $userDetails, 
    $orderDetails);
} catch (PaymentErrorException $error) {
    // Revisa la salida en consola para más información    
    // Acceso al código HTTP y el mensaje de error del servicio de la pasarela
    $code = $error->getCode();
    $message = $error->getMessage();
}

// Obtiene el código / referencia de pago
$referenceCode = $order->transaction->reference;
// Obtiene la fecha de expiración
$expirationData = $order->transaction->expiration_date;
// Obtiene el estado de la orden
$status = $order->transaction->status;

执行单元测试

composer run test