valdeirpsr/pagseguro 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

valdeirpsr/pagseguro

Composer 安装命令:

composer require valdeirpsr/pagseguro

包简介

SDK não oficial para o PagSeguro Checkout Transparente

关键字:

README 文档

README

License MIT Test SDK with PHPUnit Total Issue Last  Version

Inicialmente, este SDK foi criado para utilização com a extensão de pagamento criada para OpenCart, no entanto, para melhor manutenção e melhorias, foi resolvido torná-lo independente.

Este projeto é open-source e não tem relação direta com a empresa PagSeguro

⚙️ Instalação

Instale o projeto via composer

PHP 7.3+

composer require valdeirpsr/pagseguro-sdk

PHP 8.0+

composer require valdeirpsr/pagseguro-sdk --ignore-platform-req php

📚 Requisitos

  • PHP 7.3 ou superior
  • PHP Curl (Extensão)
  • PHP Json (Extensão)
  • PHP Xml
  • PHP SimpleXml (Extensão)

📖 Documentação

Documentação completa

Crie transações com o uso de cartões de crédito. É necessário usar o JavaScript do PagSeguro para obter o token do cartão de crédito. Isto porque os dados do cartão não são transferidos entre o client-side e o server-side

<?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

Documentação completa

🔖 Referência API

Acessar página

🤝 Comunidade

Obtenha suporte registrando issues, acessando a área de discurssões (em breve) ou através da documentação.

👮 Problemas de Segurança

Se você achar algo que comprometa a segurança, por favor, não reporte publicamente. Envie um e-mail para contact@valdeir.dev.

📃 Licença

Este projeto é livre sob a Licença MIT.

valdeirpsr/pagseguro 适用场景与选型建议

valdeirpsr/pagseguro 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 90 次下载、GitHub Stars 达 0, 最近一次更新时间为 2021 年 01 月 25 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「payment」 「sdk」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 valdeirpsr/pagseguro 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 valdeirpsr/pagseguro 我们能提供哪些服务?
定制开发 / 二次开发

基于 valdeirpsr/pagseguro 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 90
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-01-25