Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Commit d336f9f

Browse files
committed
Fix bank account refund
1 parent 4b77f97 commit d336f9f

File tree

3 files changed

+58
-16
lines changed

3 files changed

+58
-16
lines changed

src/Resource/Refund.php

+17-16
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ private function getPath()
146146
/**
147147
* Bank account is the bank address of a particular vendor or a customer.
148148
*
149-
* @param string $type Kind of refund. possible values: FULL, PARTIAL.
149+
* @param string $type Kind of bank account. possible values: CHECKING, SAVING.
150150
* @param string $bankNumber Bank number. possible values: 001, 237, 341, 041.
151151
* @param int $agencyNumber Branch number.
152152
* @param int $agencyCheckNumber Checksum of the agency.
@@ -159,27 +159,28 @@ private function getPath()
159159
private function bankAccount($type, $bankNumber, $agencyNumber, $agencyCheckNumber, $accountNumber, $accountCheckNumber, Customer $holder)
160160
{
161161
$data = new stdClass();
162-
$data->refundingInstrument = self::METHOD_BANK_ACCOUNT;
163-
$data->bankAccount = new stdClass();
164-
$data->bankAccount->type = $type;
165-
$data->bankAccount->bankNumber = $bankNumber;
166-
$data->bankAccount->agencyNumber = $agencyNumber;
167-
$data->bankAccount->agencyCheckNumber = $agencyCheckNumber;
168-
$data->bankAccount->accountNumber = $accountNumber;
169-
$data->bankAccount->accountCheckNumber = $accountCheckNumber;
170-
$data->bankAccount->holder = new stdClass();
171-
$data->bankAccount->holder->fullname = $holder->getFullname();
172-
$data->bankAccount->holder->taxDocument = new stdClass();
173-
$data->bankAccount->holder->taxDocument->type = $holder->getTaxDocumentType();
174-
$data->bankAccount->holder->taxDocument->number = $holder->getTaxDocumentNumber();
162+
$data->refundingInstrument = new stdClass();
163+
$data->refundingInstrument->method= self::METHOD_BANK_ACCOUNT;
164+
$data->refundingInstrument->bankAccount = new stdClass();
165+
$data->refundingInstrument->bankAccount->type = $type;
166+
$data->refundingInstrument->bankAccount->bankNumber = $bankNumber;
167+
$data->refundingInstrument->bankAccount->agencyNumber = $agencyNumber;
168+
$data->refundingInstrument->bankAccount->agencyCheckNumber = $agencyCheckNumber;
169+
$data->refundingInstrument->bankAccount->accountNumber = $accountNumber;
170+
$data->refundingInstrument->bankAccount->accountCheckNumber = $accountCheckNumber;
171+
$data->refundingInstrument->bankAccount->holder = new stdClass();
172+
$data->refundingInstrument->bankAccount->holder->fullname = $holder->getFullname();
173+
$data->refundingInstrument->bankAccount->holder->taxDocument = new stdClass();
174+
$data->refundingInstrument->bankAccount->holder->taxDocument->type = $holder->getTaxDocumentType();
175+
$data->refundingInstrument->bankAccount->holder->taxDocument->number = $holder->getTaxDocumentNumber();
175176

176177
return $data;
177178
}
178179

179180
/**
180181
* Making a full refund to the bank account.
181182
*
182-
* @param string $type Kind of refund. possible values: FULL, PARTIAL.
183+
* @param string $type Kind of bank account. possible values: CHECKING, SAVING.
183184
* @param string $bankNumber Bank number. possible values: 001, 237, 341, 041.
184185
* @param int $agencyNumber Branch number.
185186
* @param int $agencyCheckNumber Checksum of the agency.
@@ -199,7 +200,7 @@ public function bankAccountFull($type, $bankNumber, $agencyNumber, $agencyCheckN
199200
/**
200201
* Making a partial refund in the bank account.
201202
*
202-
* @param string $type Kind of refund. possible values: FULL, PARTIAL.
203+
* @param string $type Kind of bank account. possible values: CHECKING, SAVING.
203204
* @param string $bankNumber Bank number. possible values: 001, 237, 341, 041.
204205
* @param int $agencyNumber Branch number.
205206
* @param int $agencyCheckNumber Checksum of the agency.

tests/Resource/RefundTest.php

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
namespace Moip\Tests\Resource;
4+
5+
use Moip\Tests\TestCase;
6+
7+
class RefundTest extends TestCase
8+
{
9+
10+
public function testRefundBankAccountFull() {
11+
$this->mockHttpSession($this->body_order);
12+
$order = $this->createOrder()->create();
13+
$this->mockHttpSession($this->body_billet_pay);
14+
$payment = $order->payments()->get('PAY-N2TXFLV4PP7Y');
15+
$this->mockHttpSession($this->body_refund_full_bankaccount);
16+
$refund = $payment->refunds()
17+
->bankAccountFull('CHECKING', '001', '1584', '9', '00210169', '6', $order->getCustomer());
18+
$this->assertNotEmpty($refund->getId());
19+
}
20+
21+
public function testRefundBankAccountPartial() {
22+
$this->mockHttpSession($this->body_order);
23+
$order = $this->createOrder()->create();
24+
$this->mockHttpSession($this->body_billet_pay);
25+
$payment = $order->payments()->get('PAY-N2TXFLV4PP7Y');
26+
$this->mockHttpSession($this->body_refund_partial_bankaccount);
27+
$refund = $payment->refunds()
28+
->bankAccountPartial(20000, 'SAVING','001', '1584', '9', '00210169', '6', $order->getCustomer());
29+
$this->assertNotEmpty($refund->getId());
30+
}
31+
}

tests/TestCase.php

+10
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,17 @@ abstract class TestCase extends PHPUnit_Framework_TestCase
6161
* @var string response from moip API.
6262
*/
6363
protected $body_billet_pay = '{"id":"PAY-XNVIBO5MIQ9S","status":"WAITING","delayCapture":false,"amount":{"total":102470,"fees":3645,"refunds":0,"liquid":98825,"currency":"BRL"},"installmentCount":1,"fundingInstrument":{"boleto":{"expirationDate":"2016-05-21","lineCode":"23793.39126 60000.062608 32001.747909 7 68010000102470"},"method":"BOLETO"},"fees":[{"type":"TRANSACTION","amount":3645}],"events":[{"type":"PAYMENT.CREATED","createdAt":"2016-05-20T15:19:47.000-03"},{"type":"PAYMENT.WAITING","createdAt":"2016-05-20T15:19:47.000-03"}],"_links":{"order":{"href":"https://sandbox.moip.com.br/v2/orders/ORD-3KSQDBJSTIF6","title":"ORD-3KSQDBJSTIF6"},"payBoleto":{"redirectHref":"https://checkout-sandbox.moip.com.br/boleto/PAY-XNVIBO5MIQ9S"},"self":{"href":"https://sandbox.moip.com.br/v2/payments/PAY-XNVIBO5MIQ9S"}},"updatedAt":"2016-05-20T15:19:47.000-03","createdAt":"2016-05-20T15:19:47.000-03"}';
64+
65+
/**
66+
* @var string response from moip API.
67+
*/
68+
protected $body_refund_full_bankaccount = '{"id":"REF-F60THFADO8N4","status":"REQUESTED","events":[{"type":"REFUND.REQUESTED","createdAt":"2017-06-27T08:52:36.000-03"}],"amount":{"total":45000,"fees":0,"currency":"BRL"},"type":"FULL","refundingInstrument":{"bankAccount":{"bankNumber":"001","bankName":"BANCO DO BRASIL S.A.","agencyNumber":"1584","agencyCheckNumber":"9","accountNumber":"00210169","accountCheckNumber":"6","type":"CHECKING","holder":{"taxDocument":{"type":"CPF","number":"22222222222"},"fullname":"Fulano de Tal"}},"method":"BANK_ACCOUNT"},"createdAt":"2017-06-27T08:52:36.000-03","_links":{"self":{"href":"https://sandbox.moip.com.br/v2/refunds/REF-F60THFADO8N4"},"order":{"href":"https://sandbox.moip.com.br/v2/orders/ORD-KNCJJINLN9QL","title":"ORD-KNCJJINLN9QL"},"payment":{"href":"https://sandbox.moip.com.br/v2/payments/PAY-WRZLMJ8JZA9Q","title":"PAY-WRZLMJ8JZA9Q"}}}';
6469

70+
/**
71+
* @var string response from moip API.
72+
*/
73+
protected $body_refund_partial_bankaccount = '{"id":"REF-0R8FSCPTI5IS","status":"REQUESTED","events":[{"type":"REFUND.REQUESTED","createdAt":"2017-06-27T11:27:56.000-03"}],"amount":{"total":20000,"fees":0,"currency":"BRL"},"type":"PARTIAL","refundingInstrument":{"bankAccount":{"bankNumber":"001","bankName":"BANCO DO BRASIL S.A.","agencyNumber":"1584","agencyCheckNumber":"9","accountNumber":"00210169","accountCheckNumber":"6","type":"SAVING","holder":{"taxDocument":{"type":"CPF","number":"22222222222"},"fullname":"Fulano de Tal"}},"method":"BANK_ACCOUNT"},"createdAt":"2017-06-27T11:27:56.000-03","_links":{"self":{"href":"https://sandbox.moip.com.br/v2/refunds/REF-0R8FSCPTI5IS"},"order":{"href":"https://sandbox.moip.com.br/v2/orders/ORD-0HX56ERCBKWE","title":"ORD-0HX56ERCBKWE"},"payment":{"href":"https://sandbox.moip.com.br/v2/payments/PAY-1177YNDVSO7W","title":"PAY-1177YNDVSO7W"}}}';
74+
6575
/**
6676
* @var string holds the last generated customer ownId. In mock mode it'll be always the default, but it changes on sandbox mode.
6777
*/

0 commit comments

Comments
 (0)