thiagobueno / zoop-sdk
Zoop支付SDK
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: >=7.0
- psr/log: ^1.1
README
简介 - 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; }