Skip to content
This repository was archived by the owner on May 12, 2025. It is now read-only.
Open

V4.1 #430

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
51e411b
transactions: create pending_review status const
leonampd Aug 9, 2018
3c1ebee
fix - customers without address
eduardostuart Sep 16, 2018
12a7123
fix - customers without phone
eduardostuart Sep 16, 2018
f8778ca
readme: adds usage instructions
murilohns Jan 8, 2019
99f11c7
client: reorder guzzle version compatibility check (#328)
leonampd Apr 23, 2019
7c60006
transaction: create analyzing status (#332)
oliveira May 17, 2019
97545f5
headers: add X-PagarMe-User-Agent and User-Agent (#330)
murilohns May 24, 2019
577dc1d
fix: refactor useragent header v3
sfwill-dev Sep 8, 2020
83a1f6a
tests: fix discover installments
sfwill-dev Sep 8, 2020
3eec91e
tests: fix payables async
sfwill-dev Sep 8, 2020
bbada41
tests: specific guzzle version for php 7.2 support
sfwill-dev Sep 10, 2020
4c2a949
bump version to 3.8.2
sfwill-dev Sep 10, 2020
38984ee
Merge pull request #371 from pagarme/fix/refactor-useragent-header-v3
sfwill-dev Sep 10, 2020
3ad6c35
feature/add-pix-payment-method-pagarme-V3
Matheus-Maciel Nov 17, 2020
fb2c8d4
fix/bulkAnticipation-tests
Matheus-Maciel Nov 24, 2020
9fbef7a
fix/refundTransaction-tests
Matheus-Maciel Nov 24, 2020
726c037
fix/bulkAnticipation-tests
Matheus-Maciel Nov 24, 2020
82a4cd6
fix/UTC-BulkAnticipations-tests
Matheus-Maciel Nov 24, 2020
1b7b7e4
Update CaseConverter.php
feijaocosta Dec 4, 2020
64f4656
Update composer.json
feijaocosta Dec 4, 2020
2ca85fb
Merge pull request #379 from pagarme/V3-feature/add-pix-payment-method
sfwill-dev Dec 14, 2020
a7886ff
bump version to 3.9.0
sfwill-dev Dec 14, 2020
b94472b
fix: refund tests intermittency
sfwill-dev Dec 14, 2020
fe3a671
Merge pull request #381 from pagarme/V3-feature/add-pix-payment-method
sfwill-dev Dec 14, 2020
06c50ba
Merge branch 'V3-pagarme' into V3
feijaoatlive Apr 30, 2021
8640c91
Merge pull request #1 from feijaocosta/V3.9-Ajustes
feijaocosta Apr 30, 2021
c1d34ba
Update composer.json
feijaocosta Apr 30, 2021
5e95999
Update PagarMe.php
feijaocosta Apr 30, 2021
2198dcd
Update TransactionHandler.php
feijaocosta Apr 30, 2021
3ecf9ef
Update PagarMe.php
feijaocosta Apr 30, 2021
41a868f
melhorias send request
Aug 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,120 changes: 1,107 additions & 13 deletions README.md

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "pagarme/pagarme-php",
"name": "liveecommerce/pagarme-php",
"description": "Pagar.Me PHP Library",
"type": "lib",
"keywords": [
Expand All @@ -14,7 +14,7 @@
"license": "MIT",
"require": {
"php": ">=5.4.0",
"guzzlehttp/guzzle": ">=5.3"
"guzzlehttp/guzzle": "7.5.*"
},
"require-dev": {
"ext-mbstring": "*",
Expand Down
2 changes: 0 additions & 2 deletions lib/CaseConverter.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@

trait CaseConverter
{
use CaseConverter;

/**
* @param string $sentence
* @return string
Expand Down
45 changes: 9 additions & 36 deletions lib/Client.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,16 @@ public function __construct(
*/
public function send(RequestInterface $apiRequest)
{
$request = $this->buildRequest($apiRequest);
$options = array_merge($this->requestOptions, [
'body' => json_encode($this->buildBody($apiRequest)),
'headers' => [
'Content-Type' => 'application/json',
'ServiceRefererName' => '62fa7b926ae07600199d7dfc'
]
]);

try {
$response = $this->client->send(
$request,
$this->requestOptions
);

return json_decode($response->getBody()->getContents());
$response = $this->client->request($apiRequest->getMethod(), $apiRequest->getPath(), $options);
} catch (\GuzzleHttp\Exception\ClientException $exception) {
$message = $exception->getResponse()->getBody()->getContents();
$code = $exception->getResponse()->getStatusCode();
Expand All @@ -72,36 +73,8 @@ public function send(RequestInterface $apiRequest)
$exception->getCode()
);
}
}

/**
* @param RequestInterface $apiRequest
* @return mixed
*/
private function buildRequest($apiRequest)
{
if (class_exists('\\GuzzleHttp\\Message\\Request')) {
$options = array_merge(
$this->requestOptions,
['json' => $this->buildBody($apiRequest)]
);
return $this->client->createRequest(
$apiRequest->getMethod(),
$apiRequest->getPath(),
$options
);
}

if (class_exists('\\GuzzleHttp\\Psr7\\Request')) {
return new \GuzzleHttp\Psr7\Request(
$apiRequest->getMethod(),
$apiRequest->getPath(),
['Content-Type' => 'application/json'],
json_encode($this->buildBody($apiRequest))
);
}

throw new \Exception("Can't build request");
return json_decode($response->getBody()->getContents());
}

/**
Expand Down
12 changes: 8 additions & 4 deletions lib/Customer/CustomerBuilder.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,15 @@ trait CustomerBuilder
*/
private function buildCustomer($customerData)
{
$customerData->address = new Address(
get_object_vars($customerData->addresses[0])
);
if (count($customerData->addresses) > 0) {
$customerData->address = new Address(
get_object_vars($customerData->addresses[0])
);
}

$customerData->phone = new Phone($customerData->phones[0]);
if (count($customerData->phones) > 0) {
$customerData->phone = new Phone($customerData->phones[0]);
}

$customerData->date_created = new \DateTime(
$customerData->date_created
Expand Down
24 changes: 23 additions & 1 deletion lib/PagarMe.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
use PagarMe\Sdk\Recipient\RecipientHandler;
use PagarMe\Sdk\Plan\PlanHandler;
use PagarMe\Sdk\SplitRule\SplitRuleHandler;
use PagarMe\Sdk\PixAdditionalField\PixAdditionalFieldHandler;
use PagarMe\Sdk\Transfer\TransferHandler;
use PagarMe\Sdk\Company\CompanyHandler;
use PagarMe\Sdk\BankAccount\BankAccountHandler;
Expand All @@ -25,6 +26,8 @@

class PagarMe
{
const VERSION = '3.9.2';

/**
* @param Client
*/
Expand Down Expand Up @@ -65,6 +68,11 @@ class PagarMe
*/
private $splitRuleHandler;

/**
* @param PixAdditionalFieldHandler
*/
private $pixAdditionalFieldHandler;

/**
* @param TransferHandler
*/
Expand Down Expand Up @@ -136,13 +144,15 @@ public function __construct(
$headers = [],
$requestOptions = []
) {
$requestHeaders = new RequestHeaders();

$this->client = new Client(
new GuzzleClient(
[
'base_url' => 'https://api.pagar.me/1/',
'base_uri' => 'https://api.pagar.me/1/',
'defaults' => [
'headers' => $headers
'headers' => $requestHeaders->getSdkHeaders($headers)
]
]
),
Expand Down Expand Up @@ -236,6 +246,18 @@ public function splitRule()
return $this->splitRuleHandler;
}

/**
* @return PixAdditionalFieldHandler
*/
public function pixAdditionalField()
{
if (!$this->pixAdditionalFieldHandler instanceof PixAdditionalFieldHandler) {
$this->pixAdditionalFieldHandler = new PixAdditionalFieldHandler();
}

return $this->pixAdditionalFieldHandler;
}

/**
* @return transferHandler
*/
Expand Down
42 changes: 42 additions & 0 deletions lib/PixAdditionalField/PixAdditionalField.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<?php

namespace PagarMe\Sdk\PixAdditionalField;

class PixAdditionalField
{

use \PagarMe\Sdk\Fillable;

/**
* @var string
*/
private $name;

/**
* @var string
*/
private $value;

public function __construct($pixAdditionalFieldData)
{
$this->fill($pixAdditionalFieldData);
}

/**
* @return string
* @codeCoverageIgnore
*/
public function getName()
{
return $this->name;
}

/**
* @return string
* @codeCoverageIgnore
*/
public function getValue()
{
return $this->value;
}
}
25 changes: 25 additions & 0 deletions lib/PixAdditionalField/PixAdditionalFieldBuilder.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?php

namespace PagarMe\Sdk\PixAdditionalField;

trait PixAdditionalFieldBuilder
{
/**
* @param array $pixAdditionalFieldData
* @return PixAdditionalFieldCollection
*/
private function buildPixAdditionalField($pixAdditionalFieldData)
{
$fields = new PixAdditionalFieldCollection();

if (is_array($pixAdditionalFieldData)) {
foreach ($pixAdditionalFieldData as $field) {
$field->date_created = new \DateTime($field->date_created);
$field->date_updated = new \DateTime($field->date_updated);
$fields[] = new PixAdditionalField(get_object_vars($field));
}
}

return $fields;
}
}
81 changes: 81 additions & 0 deletions lib/PixAdditionalField/PixAdditionalFieldCollection.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
<?php

namespace PagarMe\Sdk\PixAdditionalField;

class PixAdditionalFieldCollection implements \ArrayAccess, \Iterator, \Countable
{

/**
* @var array $fields
*/
private $fields = [];

/**
* @var int $position
*/
private $position = 0;

public function offsetSet($offset, $value)
{
if (!$value instanceof PixAdditionalField) {
throw new \InvalidArgumentException(
"The value supplied is not a PixAdditionalField object",
1
);
}

if (is_null($offset)) {
$this->fields[] = $value;
} else {
$this->fields[$offset] = $value;
}
}

public function offsetExists($offset)
{
return isset($this->fields[$offset]);
}

public function offsetUnset($offset)
{
unset($this->fields[$offset]);
}

public function offsetGet($offset)
{
return isset($this->fields[$offset]) ? $this->fields[$offset] : null;
}

public function rewind()
{
$this->position = 0;
}

public function current()
{
return $this->fields[$this->position];
}

public function key()
{
return $this->position;
}

public function next()
{
++$this->position;
}

public function valid()
{
return isset($this->fields[$this->position]);
}

/**
* @return int
*/
public function count()
{
return count($this->fields);
}
}
23 changes: 23 additions & 0 deletions lib/PixAdditionalField/PixAdditionalFieldHandler.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?php

namespace PagarMe\Sdk\PixAdditionalField;

class PixAdditionalFieldHandler
{
/**
* @param string $name
* @param string $value
* @return PixAdditionalField
*/
public function additionalPixField(
$name,
$value
) {
return new PixAdditionalField(
[
'name' => $name,
'value' => $value,
]
);
}
}
29 changes: 29 additions & 0 deletions lib/PixAdditionalFieldSerializer.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

namespace PagarMe\Sdk;

use PagarMe\Sdk\PixAdditionalField\PixAdditionalFieldCollection;

trait PixAdditionalFieldSerializer
{

/**
* @param \PagarMe\Sdk\PixAdditionalField\PixAdditionalFieldCollection $pixAdditionalFields
* @return array
*/
public function getPixAdditionalFieldsInfo(PixAdditionalFieldCollection $pixAdditionalFields)
{
$fields = [];

foreach ($pixAdditionalFields as $key => $pixAdditionalField) {
$field = [
'name' => $pixAdditionalField->getName(),
'value' => $pixAdditionalField->getValue()
];

$fields[$key] = $field;
}

return $fields;
}
}
Loading