valdeirpsr / pagseguro
PagSeguro Checkout 透明支付非官方SDK
v1.1.0
2023-09-09 12:44 UTC
Requires
- php: ^7.3 | ^8.0 | ^8.1 | ^8.2
- ext-curl: *
- ext-json: *
- curl/curl: ^2.5
- monolog/monolog: ^2.1
Requires (Dev)
- phpstan/phpstan: ^0.12.64
- phpunit/phpunit: ^9.3
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2024-09-09 15:31:35 UTC
README
最初,此SDK是为了与为OpenCart创建的支付扩展一起使用而创建的,然而为了更好的维护和改进,决定将其变为独立。
此项目是开源的,与PagSeguro公司无直接关系
⚙️ 安装
通过 composer 安装项目
PHP 7.3+
composer require valdeirpsr/pagseguro-sdk
PHP 8.0+
composer require valdeirpsr/pagseguro-sdk --ignore-platform-req php
📚 要求
- PHP 7.3 或更高版本
- PHP Curl (扩展)
- PHP Json (扩展)
- PHP Xml
- PHP SimpleXml (扩展)
📖 文档
使用信用卡创建交易。需要使用PagSeguro的JavaScript来获取信用卡令牌。这是因为信用卡数据不会在客户端和服务器端之间传输
<?php require_once "vendor/autoload.php"; use ValdeirPsr\PagSeguro\Constants\Shipping\Type as ShippingTypes; use ValdeirPsr\PagSeguro\Exception\{ Auth as AuthException, PagSeguroRequest as PagSeguroRequestException }; use ValdeirPsr\PagSeguro\Domains\{ Payment, CartItem, Shipping, Address, Document, User\Factory as FactoryUser, PaymentMethod\CreditCard }; use ValdeirPsr\PagSeguro\Request\Sale; /** * Gera a sessão para autorização da requisição */ $sessionHash = $this->model_extension_payment_pagseguro->generateSession(); /** * Informa os dados do cliente */ $sender = FactoryUser::sender( 'Valdeir Psr', 'teste@valdeir.dev', '71912345678', Document::cpf('000.000.000-00'), $sessionHash ); /** * Define os produtos que o cliente comprou */ $products = []; foreach ($this->cart->getProducts() as $product) { $product = new CartItem(); $product->setId('123'); // Limite de 80 caracteres $product->setDescription('Teatro Completo de Ariano Suassuna'); $product->setQuantity(1); $product->setAmount(349.91); $products[] = $item; } $payment = new Payment(); $payment->setMode('default'); $payment->setSender($sender); $payment->setCurrency('BRL'); $payment->setReference('Comentário do cliente / Referência do Pedido'); $payment->setCartItems($products); // Defina a URL que receberá os alertas do WebHook $payment->setNotificationUrl('https://example.com/callback?order_id=123'); // Define um valor de desconto (valor negativo) ou acréscimo (valor positivo) $payment->setExtraAmount(-9.91); /** * Define os dados de endereço */ $address = new Address(); $address->setStreet('Avenida Brasil'); $address->setNumber('44878'); $address->setDistrict('Campo Grande'); $address->setCity('Rio de Janeiro'); $address->setState('RJ'); $address->setPostalCode('23078001'); $address->setComplement('Mar Mil'); /** * Dados do titular do cartão */ $holder = FactoryUser::holder( 'Titular do cartão', 'customer@example.com', '71912345678', Document::cpf('000.000.000-00') ); $holder->setBirthdate(DateTime::createFromFormat('Y-m-d', '1993-07-13')); /** * Define os dados do cartão de crédito */ $creditCard = new CreditCard(); $creditCard->setToken('token gerado pelo JavaScript do PagSeguro'); $creditCard->setInstallmentQuantity(7); // Número de parcelas $creditCard->setInstallmentValue(69.98); // Valor gerado pelo JavaScript $creditCard->setBillingAddress($address); // $creditCard->setHolder($holder); /** * Caso tenha definido juros, utilize o método abaixo para informar * o número de parcelas sem juros; caso contrário, deixa-a comentada. */ //$creditCard->setNoInterestInstallmentQuantity(1); /** * Define os dados de entrega */ $shipping = new Shipping(); $shipping->setAddressRequired(true); $shipping->setType(ShippingTypes::UNKNOWN); // Utilize UNKNOWN, PAC ou SEDEX $shipping->setCost(10.00); $shipping->setAddress($address); /** * Define o ambiente. Caso esteja usando em produção, utilize * ```Environment::production``` */ $env = Environment::sandbox('seu e-mail', 'seu token'); /** * Realiza a requisição e obtém o ID da transação */ $sale = new Sale($env); $response = $sale->create($payment); echo $response->getCode(); // Imprime o código de identificação da transação
🔖 API参考
🤝 社区
通过注册问题、访问讨论区(即将推出)或通过文档来获取支持。
👮 安全问题
如果您发现任何可能损害安全性的问题,请不要公开报告。请发送电子邮件至 contact@valdeir.dev
。
📃 许可证
此项目是在MIT许可证下免费提供的。