misterioso013/picpay-php

与PicPay API简单集成

v1.0.0 2022-03-18 02:41 UTC

This package is auto-updated.

Last update: 2024-09-30 01:43:31 UTC


README

我们将使用PicPay E-commerce的API来接收我们的PHP 8简单系统中的支付。

安装

PicPay.php文件包含到代码中

<?php

require_once("src/PicPay.php");

use Misterioso013\Payments\PicPay; 
$picpay = New PicPay(x_picpay_token, x_seller_token);

或者使用composer来简化操作。安装

composer require misterioso013/picpay-php

使用示例

<?php

require __DIR__. "vendor/autoload.php";

use Misterioso013\Payments\PicPay; 
$picpay = New PicPay(x_picpay_token, x_seller_token);

注意:请记得将x_picpay_tokenx_seller_token替换为您在PicPay网站上找到的token。

请求支付

客户决定使用PicPay进行支付,现在只需生成带有其数据的支付即可。测试代码

$data = array(
  "referenceId" => 100000000,
  "callbackUrl" => "http://www.sualoja.com.br/callback",
  "returnUrl" => "http://www.sualoja.com.br/cliente/pedido/102030",
  "value" => 0.50,
  "expiresAt" => "2022-05-01T16:00:00-03:00",
  "channel" => "my-channel",
  "purchaseMode" => "in-store",
  "buyer" =>  [
    "firstName"=> "João",
    "lastName"=> "Da Silva",
    "document"=> "123.456.789-10",
    "email"=> "teste@picpay.com",
    "phone" => "+55 27 12345-6789"
  ]);

  print_r($picpay->Payments($data));

理解响应

请求支付时,您将收到包含以下数据的数组

错误

错误将返回以下消息

  • 提供的Token无效
  • 某些属性未通过验证测试。
  • 一般问题,请检查交易是否已创建或取消该交易。

处理错误有助于避免仅依赖于客户正确输入数据或您使用的API。无论发生什么,您的系统都不会因为某些错误而崩溃。

错误 422 - 数据验证

对可能错误的响应

Array
(
    [0] => stdClass Object
        (
            [message] => O campo reference id é obrigatório.
            [field] => referenceId
        )

    [1] => stdClass Object
        (
            [message] => O campo value é obrigatório.
            [field] => value
        )

    [2] => stdClass Object
        (
            [message] => O campo callback url é obrigatório.
            [field] => callbackUrl
        )

    [3] => stdClass Object
        (
            [message] => O campo buyer é obrigatório.
            [field] => buyer
        )

    [4] => stdClass Object
        (
            [message] => O campo buyer.document é obrigatório.
            [field] => buyer.document
        )

)

如何检查这些错误的示例

$data = array(
  "referenceId" => "",
  "callbackUrl" => "",
  "returnUrl" => "",
  "value" => "",
  "expiresAt" => "",
  "channel" => "my-channel",
  "purchaseMode" => "in-store",
  "buyer" =>  [
    "firstName"=> "",
    "lastName"=> "",
    "document"=> "",
    "email"=> "",
    "phone" => ""
  ]);
$payment = $picpay->Payments($data);

  if(isset($payment->error)) {

    if(isset($payment->error->errors)){
      
      foreach($payment->error->errors as $error) {

        $message = $error->message;
        $field = $error->field;
  
        echo "Atenção! {$message} | Campo: {$field} <br>";
      }
    }
  }

状态

简单查询您的订单状态。使用我们的示例以更好地理解

使用referenceId作为订单标识符

示例

$request = $picpay->Status($referenceId);
print_r($request);

成功返回

stdClass Object
(
    [referenceId] => 960361262
    [status] => paid
    [createdAt] => 2021-09-09T07:29:37.000000Z
    [updatedAt] => 2021-09-09T09:00:17.000000Z
    [value] => 0.5
    [authorizationId] => 0000b800cf788600237f30f3
)

理解上述数组

可能的状态

取消

取消尚未支付的订单或退还已完成支付的款项。

使用referenceId作为订单标识符 使用authorizationId取消已支付的订单

示例

# o authorizationId só é obrigatório para pedidos que já foram pagos
$request = $picpay->Cancellations($referenceId, $authorizationId);
print_r($request);

成功返回

stdClass Object
(
    [referenceId] => 960361262
    [cancellationId] => 0000b800cf788600237f30f3
)

理解上述数组

我没有测试API使用可能发生的所有情况,并且您最新的文档在此提交时无法使用。

请随意进行分支并继续此项目,我相信这将帮助很多人。