thiagok/picpay-php-sdk

PHP SDK 用于与 PicPay 电子商务 API 集成

1.1 2020-08-11 19:32 UTC

This package is not auto-updated.

Last update: 2024-10-03 14:14:13 UTC


README

用于 PicPay 电子商务 API 的无状态 PHP SDK。

依赖关系

  • PHP >= 5.6

示例

以下代码片段展示了如何使用该包与 PicPay 进行通信。

执行支付

<?php

require_once('vendor/autoload.php');

use Picpay\Payment;
use Picpay\Buyer;
use Picpay\Seller;
use Picpay\Request\PaymentRequest;
use Picpay\Exception\RequestException;

// Dados da loja (PicPay Token e Seller Token)
$seller = new Seller('5b008cef7f321d00ef2367b2', '4ef4edbd-5cda-42da-860b-0e8d7b90c784');

// Dados do comprador
$buyer = new Buyer('João', 'Da Silva', '123.456.789-10', 'teste@picpay.com', '+55 27 12345-6789');

// Data de expiração do pagamento
// Você pode enviar um false, para deixar o padrão do PicPay
$expireAt = date("c", strtotime("2022-12-31 23:59:59));

// Dados do pedido
$payment = new Payment('102030', 'http://www.sualoja.com.br/callback', 20.51, $expireAt, $buyer, 'http://www.sualoja.com.br/cliente/pedido/102030');

// PAGAMENTO
try {
    // Cria uma nova requisição de pagamento com os dados da loja e do pagamento
    $paymentRequest = new PaymentRequest($seller, $payment);

    // O retorno tem a url de pagamento no PicPay, o qrcode, data de expiracao e seu id do pedido
    $paymentResponse = $paymentRequest->execute();
} catch (RequestException $e) {
    // Tratar os erros da requisição aqui
    $errorMessage = $e->getMessage();
    $statusCode = $e->getCode();
    $errors = $e->getErrors();
}

处理通知帖子

<?php

require_once('vendor/autoload.php');

use Picpay\Request\NotificationRemoteRequest;

// A implementação do tratamento da requisição de notificação (um POST na url enviada em callbackUrl - http://www.sualoja.com.br/callback nesse exemplo) varia de acordo com a tecnologia utilizada na loja.

// Para que o callback seja considerado confirmado, deve-se responder com HTTP Status 200.

// Podemos usar a classe NotificationRemoteRequest desse pacote para obter o authorizationId a partir do body da requisição enviada pelo PicPay

$remoteNotification = new NotificationRemoteRequest('{"referenceId": "102030","authorizationId": "5b01780ba8914c001a007673"}');

$authorizationId = $remoteNotification->getAuthorizationId();

获取支付状态

<?php

require_once('vendor/autoload.php');

use Picpay\Seller;
use Picpay\Exception\RequestException;
use Picpay\Request\StatusRequest;

// Dados da loja (PicPay Token e Seller Token)
$seller = new Seller('5b008cef7f321d00ef2367b2', '4ef4edbd-5cda-42da-860b-0e8d7b90c784');

// STATUS
try {
    // Cria uma nova requisição de status do pagamento com os dados da loja e id do pedido
    $statusRequest = new StatusRequest($seller, '102030');

    // Faze a requisição. O retorno contém o status do pagamento, seu id do pedido e numero de autorizaçao caso esteja pago
    $statusResponse = $statusRequest->execute();
} catch (RequestException $e) {
    // Tratar os erros da requisição aqui
    $errorMessage = $e->getMessage();
    $statusCode = $e->getCode();
    $errors = $e->getErrors();
}

取消支付

<?php

require_once('vendor/autoload.php');

use Picpay\Seller;
use Picpay\Exception\RequestException;
use Picpay\Request\CancelRequest;

// Dados da loja (PicPay Token e Seller Token)
$seller = new Seller('5b008cef7f321d00ef2367b2', '4ef4edbd-5cda-42da-860b-0e8d7b90c784');

// CANCELAMENTO
try {
    // Cria uma nova requisição de cancelamento do pagamento com os dados da loja, id do pedido e codigo de autorização
    $cancelRequest = new CancelRequest($seller, '102030', '555008cef7f321d00ef236333');

    // Faze a requisição. O retorno contém o id do cancelamento e seu id do pedido
    $cancelResponse = $cancelRequest->execute();
} catch (RequestException $e) {
    // Tratar os erros da requisição aqui
    $errorMessage = $e->getMessage();
    $statusCode = $e->getCode();
    $errors = $e->getErrors();
}

文档

更多详细信息,请参阅 PicPay 电子商务 API 文档: 电子商务 API 文档