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

Commit ef61c2d

Browse files
committed
feat(escrow): add release escrow feature
1 parent 95fca31 commit ef61c2d

File tree

6 files changed

+103
-0
lines changed

6 files changed

+103
-0
lines changed

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@
6868
- [Consulta](#consulta-9)
6969
- [Listagem](#listagem-2)
7070
- [Reversão](#reversão)
71+
- [Custódia](#custódia)
72+
- [Pagamento com custódia](#pagamento-com-custódia)
73+
- [Liberação de custódia](#liberação-de-custódia)
7174
- [OAuth (Moip Connect)](#oauth-(moip-connect))
7275
- [Solicitar permissões de acesso ao usuário](#solicitar-permissões-de-acesso-ao-usuário)
7376
- [Gerar Token OAuth](#gerar-token-oauth)
@@ -553,6 +556,35 @@ transfers = api.transfer.find_all()
553556
```ruby
554557
transfer = api.transfer.reverse("TRA-B0W5FD5FCADG")
555558
```
559+
## Custódia
560+
### Pagamento com custódia
561+
```ruby
562+
payment = api.payment.create(order.id,
563+
{
564+
installment_count: 1,
565+
escrow: {
566+
description: 'Custódia de pagamento'
567+
},
568+
funding_instrument: {
569+
method: "CREDIT_CARD",
570+
credit_card: {
571+
expiration_month: 04,
572+
expiration_year: 18,
573+
number: "4002892240028922",
574+
cvc: "123",
575+
holder: {
576+
# ...
577+
}
578+
}
579+
}
580+
}
581+
)
582+
```
583+
584+
### Liberação de custódia
585+
```ruby
586+
escrow = api.payment.release("ECW-JO3U4WIXD0CK")
587+
```
556588

557589
## OAuth (Moip Connect)
558590
### Solicitar permissões de acesso ao usuário

lib/moip2.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
require "moip2/resource/notification"
2525
require "moip2/resource/balances"
2626
require "moip2/resource/bank_account"
27+
require "moip2/resource/escrow"
2728

2829
require "moip2/response"
2930
require "moip2/client"

lib/moip2/payment_api.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,9 @@ def capture(payment_id)
2121
def void(payment_id)
2222
Resource::Payment.new client.post("/v2/payments/#{payment_id}/void", nil)
2323
end
24+
25+
def release(escrow_id)
26+
Resource::Escrow.new client.post("/v2/escrows/#{escrow_id}/release", nil)
27+
end
2428
end
2529
end

lib/moip2/resource/escrow.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module Moip2
2+
module Resource
3+
class Escrow < SimpleDelegator
4+
def intialize(response)
5+
super(response)
6+
end
7+
end
8+
end
9+
end

spec/moip2/payment_api_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,4 +133,18 @@
133133
it { expect(cancelled_payment.funding_instrument).to_not be_nil }
134134
it { expect(cancelled_payment.installment_count).to eq 1 }
135135
end
136+
137+
describe "#release" do
138+
let(:payment_api_oauth) { described_class.new(sandbox_oauth_client) }
139+
let (:released_escrow) do
140+
VCR.use_cassette("release_escrow") do
141+
payment_api_oauth.release("ECW-JO3U4WIXD0CK")
142+
end
143+
end
144+
145+
it { expect(released_escrow.id).to eq "ECW-JO3U4WIXD0CK" }
146+
it { expect(released_escrow.status).to eq "RELEASED" }
147+
it { expect(released_escrow.description).to eq "Custódia de pagamento" }
148+
it { expect(released_escrow.amount).to eq 2000 }
149+
end
136150
end

vcr_cassettes/release_escrow.yml

Lines changed: 43 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)