thiagobueno/zoop-sdk

Zoop支付SDK

2.6 2024-10-03 17:31 UTC

This package is auto-updated.

Last update: 2024-10-03 17:31:31 UTC


README

alt text

简介 - Zoop SDK - PHP 🐘

非官方Zoop PHP SDK,用于实现支付网关集成。

您可以通过访问此 链接 来查看Zoop的官方文档。

目录

安装

使用以下命令安装库

composer require thiagobueno/zoop-sdk

配置

要将库包含到您的项目中,只需执行以下操作

<?php
use Zoop\Core\ZoopConfig;
use Zoop\ZoopClient;

require("vendor/autoload.php");

$token = 'zpk_test_Xxxxxx'; /* Token gerado ADM Mkt Zoop */
$marketplace = 'd0024d3f01ea4xxxxxxxxxx'; /* ID do Marketplace */
$vendedor = '38e0c71e9c7c465080bxxxxxxxxx'; /** ID do vendedor do marketplace */

$client = new ZoopClient(
    ZoopConfig::configure($token, $marketplace, $vendedor)
);

交易

使用信用卡创建支付。

传递给SDK的第二个参数是可选的,可用于在zoop中保存(并通过webhook恢复)您应用程序中的本地支付ID。

SEU_ID_VENDA是您应用程序生成的一个ID。

该值应为一个正整数,例如,4950代表R$ 49,50

try {
    $pagamento = $client->payCreditCard(array(
        'description' => 'Plano Nitro',
        'amount' => 4950,
        'card' => array(
            'card_number' => '5201561050024014',
            'holder_name' => 'João Silva',
            'expiration_month' => '03',
            'expiration_year' => '2018',
            'security_code' => '123',
        )
    ), 'SEU_ID_VENDA');
    print_r($pagamento);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

使用支票创建支付。

要生成一个Boleto,首先您必须注册一个 买家 并将其添加到ID_DO_COMPRADOR的位置

SEU_ID_VENDA是您应用程序生成的一个ID。

该值应为一个正整数,例如,4950代表R$ 49,50

关于罚款、利息和折扣的选项和规则,您可以在 https://docs.zoop.co/docs/multa-juros-e-descontos 查看所有信息

try {
    $boleto = $client->generateTicket(array(
        'amount' => 4950,
        'logo' => 'https://dashboard.zoop.com.br/assets/imgs/logo-zoop.png',
        'description' => 'Pagamento Zoop',
        'top_instructions' => 'Instruções de pagamento',
        'body_instructions' => 'Não receber após a data de vencimento.',
        'expiration_date' => (string)date('Y-m-d'),
        'payment_limit_date' => (string)date('Y-m-d'),
        'late_fee' => [
            'mode' => 'PERCENTAGE',
            'percentage' => 2
        ],
        'interest' => [
            'mode' => 'MONTHLY_PERCENTAGE',
            'percentage' => 1,
            'start_date' => (string)date('Y-m-d'),
        ],
        'discount' => [
            'mode' => 'FIXED',
            'amount' => 100,
            'limit_date' => (string)date('Y-m-d'),
        ],
    ),  'ID_DO_COMPRADOR', 'SEU_ID_VENDA');
    print_r($boleto);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

使用Boleto Pix创建支付。

要生成一个Boleto,首先您必须注册一个 买家 并将其添加到ID_DO_COMPRADOR的位置

SEU_ID_VENDA是您应用程序生成的一个ID。

该值应为一个正整数,例如,4950代表R$ 49,50

关于罚款、利息和折扣的选项和规则,您可以在 https://docs.zoop.co/docs/multa-juros-e-descontos 查看所有信息

您需要在SEU_ID_VENDA后面传递'bolepix',返回时没有URL,并且通过barcode、digitable_line和pix,您可以组装您的Boleto。

有关Boleto com Pix的更多信息,请参阅 Boleto com Pix

try {
    $boleto = $client->generateTicket(array(
        'amount' => 4950,
        'logo' => 'https://dashboard.zoop.com.br/assets/imgs/logo-zoop.png',
        'description' => 'Pagamento Zoop',
        'top_instructions' => 'Instruções de pagamento',
        'body_instructions' => 'Não receber após a data de vencimento.',
        'expiration_date' => (string)date('Y-m-d'),
        'payment_limit_date' => (string)date('Y-m-d'),
        'due_at' => (string)date('Y-m-d'),
        'payment_limit_at' => null,
        'late_fee' => [
            'mode' => 'PERCENTAGE',
            'percentage' => 2
        ],
        'interest' => [
            'mode' => 'MONTHLY_PERCENTAGE',
            'percentage' => 1,
            'start_date' => (string)date('Y-m-d'),
        ],
        'discount' => [
            'mode' => 'FIXED',
            'amount' => 100,
            'limit_date' => (string)date('Y-m-d'),
        ],
    ),  'ID_DO_COMPRADOR', 'SEU_ID_VENDA', 'bolepix');
    print_r($boleto);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

列出并处理Zoop的交易。

列出Marketplace中的所有交易,如果出现问题,Exception将直接从Zoop发送的消息中进行拆分,从而便于维护和理解。

try {
    $transactions = $client->getAllTransactions();
    print_r($transactions);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

获取交易数据。

此方法返回一个交易的详细数据。

try {
    $transactions = $client->getTransaction('454543534543');
    print_r($transactions);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

卖家

恢复Marketplace中所有卖家的详细信息。

try {
    $vendedores = $client->getAllSellers();
    print_r($vendedores);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

恢复卖家详细信息。

try {
    $vendedor = $client->getSeller('5345634635');
    print_r($vendedor);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

买家

在配置的Marketplace内创建买家。

try {
    $comprador = $client->createBuyer([
        'first_name' => 'João das Neves',
        'taxpayer_id' => '30621143049', /* CPF */
        'email' => 'joaoneves@norte.com',
        'address' => [
            'line1' => 'Rua Lobo, 999',
            'line2' => 'Vento Cinzento',
            'neighborhood' => 'Vila Carrao',
            'city' => 'São Paulo',
            'state' => 'SP',
            'postal_code' => '03424030',
            'country_code' => 'BR'
        ],
    ]);
    print_r($comprador);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

列出Marketplace中的所有买家。

try {
    $compradores = $client->getAllBuyers();
    print_r($compradores);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

恢复买家详细信息。

try {
    $comprador = $client->getBuyer('5345634635');
    print_r($comprador);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

更新买家数据。

try {
    $comprador = $client->updateBuyer('5345634635', [
        'first_name' => 'João Das Neves'
    ]);
    print_r($comprador);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

从Marketplace中删除买家。

try {
    $response = $client->deleteBuyer('5345634635');
    print_r($response);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

转账

按卖家列出转账。

try {
    $transactions = $client->getTransfers($sellerId);
    print_r($transactions);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

按Marketplace列出转账。

try {
    $transactions = $client->getAllTransfers();
    print_r($transactions);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

恢复转账详细信息。

try {
    $transactions = $client->getTransfer($transferId);
    print_r($transactions);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

列出与转账关联的交易。

try {
    $transactions = $client->getTransactions($transferId);
    print_r($transactions['transactions']);
} catch(\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

WebHook

实例化您的客户端

<?php
use Zoop\Core\ZoopConfig;
use Zoop\ZoopClient;

require("vendor/autoload.php");

$token = 'zpk_test_Xxxxxx'; /* Token gerado ADM Mkt Zoop */
$marketplace = 'd0024d3f01ea4xxxxxxxxxx'; /* ID do Marketplace */
$vendedor = '38e0c71e9c7c465080bxxxxxxxxx'; /** ID do vendedor do marketplace */

$client = new ZoopClient(
    ZoopConfig::configure($token, $marketplace, $vendedor)
);

创建Webhook (POST)

返回状态,如果webhook创建成功。

try {
    $webhook = $client->createWebHook('https://webhook.seusite.com.br', 'WebHook da SDK');
    print_r($webhook);
} catch (\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

返回Zoop的调用(POST)

我们需要了解如何在项目中使用Zoop的Webhook,在创建某些交易后,例如使用信用卡,这个操作在Zoop内部创建一个事件,该事件发送到您的URL,例如: https://seusite.com.br/webhook SDK帮助您获取发送到您的Webhook的数据。

try {
    $webHookAlert = $client->webHookListen();
    if (isset($webHookAlert) && !empty($webHookAlert) && is_array($webHookAlert)) {
        $log = fopen('webhook.json', 'a+');
        fwrite($log, json_encode($webHookAlert));
        fclose($log);
    } else {
        echo 'o evento recebido não é valido';
    }
} catch (\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

列出所有WebHooks

返回一个包含Marketplace中创建的所有WebHooks的列表。

try {
    $webhooks = $client->getAllWebHooks();
    print_r($webhooks);
} catch (\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}

删除WebHook

删除具有指定ID的Webhook,并返回状态,如果该Webhook已删除或未删除。

try {
    $webhook = $client->deleteWebHook('45345345');
    print_r($webhook);
} catch (\Exception $e){
    echo $e->getMessage() . PHP_EOL;
}