misterioso013 / picpay-php
与PicPay API简单集成
v1.0.0
2022-03-18 02:41 UTC
Requires
- php: >=8.0.0
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_token
和x_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使用可能发生的所有情况,并且您最新的文档在此提交时无法使用。
请随意进行分支并继续此项目,我相信这将帮助很多人。