-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
537a740
commit 0fb5442
Showing
1 changed file
with
159 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,161 @@ | ||
# mercadopago-sdk-go | ||
![GoLang MercadoPago](https://i.imgur.com/fUzaPBC.png) | ||
# MercadoPago SDK para Go | ||
SDK (não oficial) para consumir os serviços do MercadoPago em Golang. | ||
|
||
## Documentação oficial | ||
Para mais duvidas consulte a [documentação oficial do MercadoPago](https://www.mercadopago.com.br/developers/pt/guides). | ||
## 📲 Instalação | ||
Para baixar o SDK basta utilizar o seguinte comando: | ||
```bash | ||
$ go get -u github.com/eduardo-mior/mercadopago-sdk-go | ||
``` | ||
|
||
## 🛠 Funcionalidades do SDK | ||
Funcionalidades disponíbilizadas no SDK: | ||
- Criação de um pagamento | ||
- Atualização de um pagamento | ||
- Consulta de um pagamento | ||
- Listagem/Busca de pagamento | ||
- Listagem de tipos de documento de identificação do MercadoPago | ||
- Listagem de métodos de pagamento e suas confiurações | ||
|
||
## 🌟 Começando | ||
Para começar você deve fazer o `import` do SDK, para isso basta adicionar a seguinte linha no seu código: | ||
```go | ||
import "github.com/eduardo-mior/mercadopago-sdk-go" | ||
``` | ||
Feito isso já esta tudo pronto para você começar a utilizaro SDK! | ||
|
||
## 💻 Exemplos de uso | ||
Criando um pagamento: | ||
```go | ||
response, mercadopagoErr, err := mercadopago.CreatePayment(mercadopago.PaymentRequest{ | ||
ExternalReference: "seu-id-interno-0001", | ||
Items: []mercadopago.Item{ | ||
{ | ||
Title: "Pagamendo mensalidade PagueTry", | ||
Quantity: 1, | ||
UnitPrice: 50, | ||
}, | ||
}, | ||
Payer: mercadopago.Payer{ | ||
Identification: mercadopago.PayerIdentification{ | ||
Type: "CPF", | ||
Number: "12345678909", | ||
}, | ||
Name: "Eduardo", | ||
Surname: "Mior", | ||
Email: "[email protected]", | ||
}, | ||
}) | ||
|
||
if err != nil { | ||
// Erro inesperado | ||
} else if mercadopagoErr != nil { | ||
// Erro retornado do MercadoPago | ||
} else { | ||
// Sucesso! | ||
} | ||
``` | ||
|
||
Atualizando um pagamento: | ||
```go | ||
response, mercadopagoErr, err := mercadopago.UpdatePayment("825927174-5423394f-06f1-4d2b-8545-35ebecf70008", mercadopago.PaymentRequest{ | ||
ExternalReference: "seu-id-interno-0001", | ||
Items: []mercadopago.Item{ | ||
{ | ||
Title: "Pagamendo semestralidade PagueTry", | ||
Quantity: 1, | ||
UnitPrice: 300, | ||
}, | ||
}, | ||
Payer: mercadopago.Payer{ | ||
Identification: mercadopago.PayerIdentification{ | ||
Type: "CPF", | ||
Number: "12345678909", | ||
}, | ||
Name: "Eduardo", | ||
Surname: "De Bastiani Mior", | ||
Email: "[email protected]", | ||
}, | ||
}) | ||
|
||
if err != nil { | ||
// Erro inesperado | ||
} else if mercadopagoErr != nil { | ||
// Erro retornado do MercadoPago | ||
} else { | ||
// Sucesso! | ||
} | ||
``` | ||
|
||
Consultando o status de um pagamento: | ||
```go | ||
response, mercadopagoErr, err := mercadopago.GetPayment("825927174-5423394f-06f1-4d2b-8545-35ebecf70008") | ||
|
||
if err != nil { | ||
// Erro inesperado | ||
} else if mercadopagoErr != nil { | ||
// Erro retornado do MercadoPago | ||
} else { | ||
// Sucesso! | ||
} | ||
``` | ||
|
||
Pesquisando um pagamento: | ||
```go | ||
// Na pesquisa de pagamento pode ser aplicado filtro por qualquer campo/propriedade do pagamento. | ||
// No exemplo abaixo a pesquisa é feita pelo campo external_reference que é o nosso ID interno de conrole. | ||
response, mercadopagoErr, err := mercadopago.SearchPayments(mercadopago.PaymentSearchParams{"external_reference": "seu-id-interno-0001"}) | ||
|
||
|
||
if err != nil { | ||
// Erro inesperado | ||
} else if mercadopagoErr != nil { | ||
// Erro retornado do MercadoPago | ||
} else { | ||
// Sucesso! | ||
} | ||
``` | ||
|
||
Consultando a lista de tipos de documento e identificação: | ||
```go | ||
identificationTypes, mercadopagoErr, err := mercadopago.GetIdentificationTypes() | ||
|
||
if err != nil { | ||
// Erro inesperado | ||
} else if mercadopagoErr != nil { | ||
// Erro retornado do MercadoPago | ||
} else { | ||
// Sucesso! | ||
} | ||
``` | ||
|
||
Consultando a lista de meios e pagamento: | ||
```go | ||
identificationTypes, mercadopagoErr, err := mercadopago.GetPaymentMethods() | ||
|
||
if err != nil { | ||
// Erro inesperado | ||
} else if mercadopagoErr != nil { | ||
// Erro retornado do MercadoPago | ||
} else { | ||
// Sucesso! | ||
} | ||
``` | ||
|
||
## 🙋🏻♂️ Ajuda | ||
O SDK atualmente possui suporte as seguintes funções: | ||
- Criação de um pagamento | ||
- Atualização de um pagamento | ||
- Consulta de um pagamento | ||
- Listagem/Busca de pagamento | ||
- Listagem de tipos de documento de identificação do MercadoPago | ||
- Listagem de métodos de pagamento e suas confiurações | ||
|
||
De acordo como forem surgindo as necessídades mais funções serão implementadas no SDK. Sinta-se livre para fazer um PullRequest ou uma Issue para novas funcionalidades. | ||
### | ||
O SDK precisa obrigatóriamente para funcionar, de uma variavel de ambiente chamada `MERCADO_PAGO_ACCESS_TOKEN` que contém o seu Token de integração do MercadoPago. Esse Token pode ser obtido na [página "Suas Integrações" na Dashboard do painel de Desenvolvedores do MercadoPago](https://www.mercadopago.com.br/developers/panel). Para setar a variavel ambiente você pode usar a função `os.Setenv("MERCADO_PAGO_ACCESS_TOKEN", "seu-token...")` ou você pode usar um arquivo `.env` e usar um pacote para gerenciar as variaveis de ambiente, como por exemplo o [Gotenv](https://github.com/subosito/gotenv). | ||
### | ||
Todas as funções do SDK podém retornar um `error` genérico do GO e um `ErrorResponse` do MercadoPago. O `error` sempre relacionado a erros do GO, como por exemplo falha ao tentar dar parse em um JSON, já o `ErrorResponse` que é a Struct de erro retornada do MercadoPago, sempre esta relacionada a erros que foram retornados da API, como por exemplo quando você não envia um campo obrigatório por exemplo. | ||
|
||
## 📚 Documentação oficial | ||
Para mais duvidas consulte a [documentação oficial do MercadoPago](https://www.mercadopago.com.br/developers/pt/reference). |