carsio/erede-php

e.Rede集成SDK

维护者

详细信息

github.com/carsio/erede-php

源代码

4.2.1 2019-04-10 20:44 UTC

This package is auto-updated.

Last update: 2024-09-29 05:42:52 UTC


README

SDK集成eRede

安装

依赖关系

  • PHP >= 5.6

安装SDK

如果已经有一个composer.json文件,只需将其中的依赖添加到项目中

{
"require": {
    "developersrede/erede-php": "*"
}
}

将依赖添加到composer.json后,只需执行

composer install

或者,您可以直接在终端执行

composer require "developersrede/erede-php"

使用

授权交易

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

// Transação que será autorizada
$transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2020',
    'John Snow'
);

// Autoriza a transação
$transaction = (new \Rede\eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}

默认情况下,交易会自动捕获;如果只需要授权交易,需要调用Transaction::capture()方法并传递参数false

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

// Transação que será autorizada
$transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2020',
    'John Snow'
)->capture(false);

// Autoriza a transação
$transaction = (new \Rede\eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}
//...

添加分期付款配置

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

// Transação que será autorizada
$transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2020',
    'John Snow'
);

// Configuração de parcelamento
$transaction->setInstallments(3);

// Autoriza a transação
$transaction = (new \Rede\eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}

添加网关和模块的附加信息

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

// Transação que será autorizada
$transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2020',
    'John Snow'
)->additional(1234, 56);

// Autoriza a transação
$transaction = (new \Rede\eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}

授权具有动态MCC的交易

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

// Transação que será autorizada
$transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2020',
    'John Snow'
)->mcc(
    'LOJADOZE',
    '22349202212',
    new \Rede\SubMerchant(
       '1234',
       'São Paulo',
       'Brasil'
    )
);

// Autoriza a transação
$transaction = (new \Rede\eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}
//...

授权IATA交易

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

// Transação que será autorizada
$transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2020',
    'John Snow'
)->iata('code123', '250');

// Autoriza a transação
$transaction = (new \Rede\eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
}

创建具有反欺诈功能的交易

<?php
//Define o ambiente da integração
// Ambiente de produção
$environment = \Rede\Environment::production();

// Ambiente sandbox
// $environment = \Rede\Environment::sandbox();

$environment->setIp('127.0.0.1');
$environment->setSessionId('NomeEstabelecimento-WebSessionID');

// Configuração da loja
$store = new \Rede\Store('PV', 'TOKEN', $environment);

// Transação que será autorizada
$transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2020',
    'John Snow'
);

//Dados do antifraude
$antifraud = $transaction->antifraud($environment);
$antifraud->consumer('Fulano', 'fulano@de.tal', '11111111111')
    ->setGender(\Rede\Consumer::MALE)
    ->setPhone(new \Rede\Phone('011', '999999999'))
    ->addDocument('RG', '111111111');

$antifraud->address()
    ->setAddresseeName('Fulano')
    ->setAddress('Rua dos bobos')
    ->setNumber('0')
    ->setZipCode('01122123')
    ->setNeighbourhood('Bairro legal')
    ->setCity('Cidade Bonita')
    ->setState('UF')
    ->setType(\Rede\Address::COMMERCIAL);

$antifraud->addItem(
    (new \Rede\Item('123123', 1, \Rede\Item::PHYSICAL))
        ->setAmount(200000)
        ->setDescription('Televisão')
        ->setFreight(199)
        ->setDiscount(199)
        ->setShippingType('Sedex')
);

// Autoriza a transação
$transaction = (new \Rede\eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    $antifraud = $transaction->getAntifraud();
    
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
    
    printf("\tAntifraude: %s\n", $antifraud->isSuccess() ? 'Sucesso' : 'Falha');
    printf("\tScore: %s\n", $antifraud->getScore());
    printf("\tNível de Risco: %s\n", $antifraud->getRiskLevel());
    printf("\tRecomendação: %s\n", $antifraud->getRecommendation());
}

为航空公司创建具有反欺诈功能的交易

<?php
//Define o ambiente da integração
// Ambiente de produção
$environment = \Rede\Environment::production();

// Ambiente sandbox
// $environment = \Rede\Environment::sandbox();

$environment->setIp('127.0.0.1');
$environment->setSessionId('NomeEstabelecimento-WebSessionID');

// Configuração da loja
$store = new \Rede\Store('PV', 'TOKEN', $environment);

// Transação que será autorizada
$transaction = (new \Rede\Transaction(20.99, 'pedido' . time()))->creditCard(
    '5448280000000007',
    '235',
    '12',
    '2020',
    'John Snow'
);

//Dados do antifraude
$antifraud = $transaction->antifraud($environment);
$antifraud->consumer('Guilherme', 'lorem@ipsum.com', '15153855406')
    ->setGender(\Rede\Consumer::MALE)
    ->setPhone(new \Rede\Phone('011', '912341234'))
    ->addDocument('RG', '3123123123123');

$antifraud->address()
    ->setAddresseeName('Daenerys')
    ->setAddress('Avenida Paulista')
    ->setNumber('123')
    ->setComplement('Ap 2')
    ->setZipCode('01122123')
    ->setNeighbourhood('Bela Vista')
    ->setCity('Sao Paulo')
    ->setState('SP')
    ->setType(\Rede\Address::COMMERCIAL);

//Dados do voo e passageiro
$antifraud->setIata(
    (new \Rede\Flight('123213', 'Los Angeles, LA', 'New York, NY', '2017-02-15T10:54:45-9:00'))
        ->setPassenger((new \Rede\Passenger('Arya Stark', 'lorem@ipsum.com', '32423432432'))
            ->setPhone(new \Rede\Phone('011', '912341234')))
);

// Autoriza a transação
$transaction = (new \Rede\eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '00') {
    $antifraud = $transaction->getAntifraud();
    
    printf("Transação autorizada com sucesso; tid=%s\n", $transaction->getTid());
    
    printf("\tAntifraude: %s\n", $antifraud->isSuccess() ? 'Sucesso' : 'Falha');
    printf("\tScore: %s\n", $antifraud->getScore());
    printf("\tNível de Risco: %s\n", $antifraud->getRiskLevel());
    printf("\tRecomendação: %s\n", $antifraud->getRecommendation());
}

捕获交易

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

// Transação que será capturada
$transaction =  (new \Rede\eRede($store))->capture((new \Rede\Transaction(20.99))->setTid('TID123'));

if ($transaction->getReturnCode() == '00') {
    printf("Transação capturada com sucesso; tid=%s\n", $transaction->getTid());
}

取消交易

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

// Transação que será cancelada
$transaction = (new \Rede\eRede($store))->cancel((new \Rede\Transaction(20.99))->setTid('TID123'));

if ($transaction->getReturnCode() == '359') {
    printf("Transação cancelada com sucesso; tid=%s\n", $transaction->getTid());
}

通过ID查询交易

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

$transaction = (new \Rede\eRede($store))->get('TID123');

printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());

通过引用查询交易

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

$transaction = (new \Rede\eRede($store))->getByReference('pedido123');

printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());

查询交易取消

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

$transaction = (new \Rede\eRede($store))->getRefunds('TID123');

printf("O status atual da autorização é %s\n", $transaction->getAuthorization()->getStatus());

具有认证的交易

<?php
// Configuração da loja em modo produção
$store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::production());

// Configuração da loja em modo sandbox
// $store = new \Rede\Store('PV', 'TOKEN', \Rede\Environment::sandbox());

// Configura a transação que será autorizada após a autenticação
$transaction = (new \Rede\Transaction(25, 'pedido' . time()))->debitCard(
    '5277696455399733',
    '123',
    '01',
    '2020',
    'John Snow'
);

// Configura o 3dSecure para autenticação
$transaction->threeDSecure(\Rede\ThreeDSecure::DECLINE_ON_FAILURE);
$transaction->addUrl('https://redirecturl.com/3ds/success', \Rede\Url::THREE_D_SECURE_SUCCESS);
$transaction->addUrl('https://redirecturl.com/3ds/failure', \Rede\Url::THREE_D_SECURE_FAILURE);

$transaction = (new \Rede\eRede($store))->create($transaction);

if ($transaction->getReturnCode() == '220') {
    printf("Redirecione o cliente para \"%s\" para autenticação\n", $transaction->getThreeDSecure()->getUrl());
}