elieldepaula / pagseguro
一个用于集成PagSeguro标准支付功能的替代库。
dev-master
2017-07-09 21:07 UTC
Requires
- php: >=5.5.0
This package is auto-updated.
Last update: 2024-08-29 04:53:54 UTC
README
这是一个用于PagSeguro标准支付功能的替代库。该库使用PagSeguro API的2.*版本。
安装
您应该使用 Composer 来安装此库
在您的composer.json文件中添加以下内容
"require": { "elieldepaula/pagseguro":"dev-master" }
使用示例
生成支付按钮
// Considerei que você já tem um autoload configurado. use elieldepaula\pagseguro\PagSeguro; try { // Referência da sua venda. $referencia = (int) 2017; $ps = new PagSeguro(); $ps->setCredentials(['email'=>'mail@dominio.com', 'token'=>'N0N0N0']); $ps->setReference($referencia); $ps->setCustomer( [ 'nome' => 'Comprador de Teste', 'email' => 'email@sandbox.pagseguro.com.br', 'shippingType' => 3 ] ); $ps->setProducts( [ 'id' => 1, 'descricao' => 'Produto de exemplo', 'valor' => 1.99, 'quantidade' => 2, 'peso' => 0 ], ... (mais produtos) ); $botao = $ps->getButton(); echo $botao; } catch (Exception $error) { echo $error->getMessage(); }
通过交易代码进行查询
// Considerei que você já tem um autoload configurado. use elieldepaula\pagseguro\PagSeguro; try { $ps = new PagSeguro(); $ps->setCredentials(['email'=>'mail@dominio.com', 'token'=>'N0N0N0']); $resultado = $ps->findByCode($_POST['transactionCode']); var_dump($resultado); } catch (Exception $error) { echo $error->getMessage(); }
通过通知代码进行查询
// Considerei que você já tem um autoload configurado. use elieldepaula\pagseguro\PagSeguro; try { $ps = new PagSeguro(); $ps->setCredentials(['email'=>'mail@dominio.com', 'token'=>'N0N0N0']); $resultado = $ps->findByNotification($_POST['notificationCode']); var_dump($resultado); } catch (Exception $error) { echo $error->getMessage(); }
Pag Seguro自动通知返回示例
此类返回会在Pag Seguro系统更改交易状态时发生,例如,当交易状态从“等待支付”更改为“已支付”时。
Pag Seguro会将通知代码以POST形式发送到Pag Seguro账户设置中指定的URL。
然后,我们使用通知代码来获取交易的全部数据,其中您可以获取在生成支付按钮时创建的“参考”字段。
这样,您就可以在数据库中识别您的销售,并更新状态或触发您系统中的任何其他类型操作。
// Considerei que você já tem um autoload configurado. use elieldepaula\pagseguro\PagSeguro; if (count($_POST) > 0) { try { $ps = new PagSeguro(); $ps->setCredentials(['email'=>'mail@dominio.com', 'token'=>'N0N0N0']); $notificationCode = (isset($_POST['notificationCode']) && $_POST['notificationCode'] != '') ? $_POST['notificationCode'] : FALSE; $resultado = $ps->findByNotification($notificationCode); var_dump($resultado); // Exemplo: $resultado->reference; } catch (Exception $error) { echo $error->getMessage(); } } else { echo "Nenhum POST foi recebido."; }