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

Repository files navigation

Moip Java SDK

CircleCICodacy BadgeSoftware LicenseSlack

Index

Require

Java v1.8ˆjava-cup

Installing

Gradle

Maven-central

Add the fallowing dependency to build.gradle in the project:

// https://mvnrepository.com/artifact/br.com.moip/sdk-java
compile group: 'br.com.moip', name: 'sdk-java', version: 'x.y.z'

Maven

Maven-central

Add the fallowing dependency to pom.xml in the project:

<!-- https://mvnrepository.com/artifact/br.com.moip/sdk-java -->
<dependency>
<groupId>br.com.moip</groupId>
<artifactId>sdk-java</artifactId>
<version>x.y.z</version>
</dependency>

Another installation methods

https://mvnrepository.com/artifact/br.com.moip/sdk-java

Simple flow

This step by step will exemplify the integration flow with simple usage examples.

1. Setup

Before making requests to Moip API its necessary create the Setup object, defining the environment, the connect timeout, the read timeout and the authentication that will be used.

1.1 Authentication

There are two ways to authenticate the request, some endpoints require a "highest authorization level", it will depend on the endpoint and type of request.

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(ENVIRONMENT);

By BasicAuth

The following set will generate a hash Base64 with your Moip account token and key to authenticate.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.BasicAuth;
Stringtoken = "01010101010101010101010101010101";
Stringkey = "ABABABABABABABABABABABABABABABABABABABAB";
Authenticationauth = newBasicAuth(token, key);

💡 If you don't know how to get your token and key, click here (you must be logged in).

By OAuth

The following set will create an OAuth authentication object.

💡 Click here to know how to get your token OAuth.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.OAuth;
Stringoauth = "8833c9eb036543b6b0acd685a76c9ead_v2";
Authenticationauth = newOAuth(oauth);

1.2 Environment

We have some environments that you can send your requests.

Sandbox

The test environment. You can use this to simulate all of your business scenarios.

Setup.Environment.SANDBOX
Production

"The environment of truth" 👀. This is the environment where the real transactions run.

Setup.Environment.PRODUCTION

💡 Before going to production, you need to request homologation of your application here.

Connect

The connect URL must be used only for operations involving another Moip accounts (request connect permission, generate the account accessToken, refresh account accessToken).

💡 If you want to know more about the Moip Connect flow, check here (PT-BR).

Sandbox

Setup.Environment.CONNECT_SANDBOX

Production

Setup.Environment.CONNECT_PRODUCTION

1.3 Finally

So, your setup must be something like this:

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(Setup.Environment.SANDBOX);

2. Create customer

With the setup created, you can make requests to Moip API. To start the basic e-commerce flow you need to create a customer. After all, it's whom will order your products or services.

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "10013390023")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "22226842")
);
Map<String, Object> shippingAddress = payloadFactory(
value("city", "Sao Paulo"),
value("district", "Itaim BiBi"),
value("street", "Av. Brigadeiro Faria Lima"),
value("streetNumber", "3064"),
value("state", "SP"),
value("country", "BRA"),
value("zipCode", "01451001")
);
Map<String, Object> customerRequestBody = payloadFactory(
value("ownId", "customer_own_id"),
value("fullname", "Test Moip da Silva"),
value("email", "test.moip@mail.com"),
value("birthDate", "1980-5-10"),
value("taxDocument", taxDocument),
value("phone", phone),
value("shippingAddress", shippingAddress)
);
Map<String, Object> responseCreation = Moip.API.customers().create(customerRequestBody, setup);

Read more about customer on API reference.

3. Create order

Customer created! It's buy time! 🎉

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> subtotals = payloadFactory(
value("shipping", 15000)
);
Map<String, Object> amount = payloadFactory(
value("currency", "BRL"),
value("subtotals", subtotals)
);
Map<String, Object> product1 = payloadFactory(
value("product", "Product 1 Description"),
value("category", "TOYS_AND_GAMES"),
value("quantity", 2),
value("detail", "Anakin's Light Saber"),
value("price", 100000000)
);
Map<String, Object> product2 = payloadFactory(
value("product", "Product 2 Description"),
value("category", "SCIENCE_AND_LABORATORY"),
value("quantity", 5),
value("detail", "Pym particles"),
value("price", 2450000000)
);
Listitems = newArrayList();
items.add(product1);
items.add(product2);
Map<String, Object> customer = payloadFactory(
value("id", "CUS-XXOBPZ80QLYP")
);
Map<String, Object> order = payloadFactory(
value("ownId", "order_own_id"),
value("amount", amount),
value("items", items),
value("customer", customer)
);
Map<String, Object> responseCreation = Moip.API.orders().create(order, setup);

Read more about order on API reference.

4. Create Payment

Alright! Do you have all you need? So, lets pay this order. 💰

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "33333333333")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "66778899")
);
Map<String, Object> holder = payloadFactory(
value("fullname", "Portador Teste Moip"),
value("birthdate", "1988-12-30"),
value("taxDocument", taxDocument),
value("phone", phone)
);
Map<String, Object> creditCard = payloadFactory(
value("hash", "CREDIT_CARD_HASH"),
value("store", false),
value("holder", holder)
);
Map<String, Object> fundingInstrument = payloadFactory(
value("method", "CREDIT_CARD"),
value("creditCard", creditCard)
);
Map<String, Object> payment = payloadFactory(
value("installmentCount", 1),
value("statementDescriptor", "minhaLoja.com"),
value("fundingInstrument", fundingInstrument)
);
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);

Read more about payment on API reference.

Other examples

If you want to see other functional examples, check the Wiki.

Exceptions treatment

errorscausestatus
UnautorizedExceptionto authentication errors== 401
ValidationExceptionto validation errors>= 400 && <= 499 (except 401)
UnexpectedExceptionto unexpected errors>= 500

⚠️ To catch these errors, use the bellow treatment:

importbr.com.moip.exception.UnauthorizedException;
importbr.com.moip.exception.UnexpectedException;
importbr.com.moip.exception.ValidationException;
try {
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);
} catch(UnauthorizedExceptione) {
// StatusCode == 401
} catch(UnexpectedExceptione) {
// StatusCode >= 500
} catch(ValidationExceptione) {
// StatusCode entre 400 e 499 (exceto 401)
}

Moip documentation

Docs

To stay up to date about the Moip Products, check the documentation.

References

Read more about the Moip APIs in API reference.

Getting help

We offer many ways to contact us, so if you have a question, do not hesitate, talk to us whatever you need. For questions about API or business rules, contact us by support or slack:slack:. But, if you have a question or suggestion about the SDK, feel free to open an issue or pull request.

Contributing

Do you have an enhancement suggest or found something to fix? Go ahead, help us and let your mark on Moip, open pull requests and issues against this project. If you want to do it, please read the CONTRIBUTING.md to be sure everyone follows the same structure and planning of the project. Remember, we ❤️ contributions. 🚀

About

🆕 Java SDK for Moip API v2 server-side integration.

Topics

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Repository files navigation

Moip Java SDK

CircleCICodacy BadgeSoftware LicenseSlack

Index

Require

Java v1.8ˆjava-cup

Installing

Gradle

Maven-central

Add the fallowing dependency to build.gradle in the project:

// https://mvnrepository.com/artifact/br.com.moip/sdk-java
compile group: 'br.com.moip', name: 'sdk-java', version: 'x.y.z'

Maven

Maven-central

Add the fallowing dependency to pom.xml in the project:

<!-- https://mvnrepository.com/artifact/br.com.moip/sdk-java -->
<dependency>
<groupId>br.com.moip</groupId>
<artifactId>sdk-java</artifactId>
<version>x.y.z</version>
</dependency>

Another installation methods

https://mvnrepository.com/artifact/br.com.moip/sdk-java

Simple flow

This step by step will exemplify the integration flow with simple usage examples.

1. Setup

Before making requests to Moip API its necessary create the Setup object, defining the environment, the connect timeout, the read timeout and the authentication that will be used.

1.1 Authentication

There are two ways to authenticate the request, some endpoints require a "highest authorization level", it will depend on the endpoint and type of request.

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(ENVIRONMENT);

By BasicAuth

The following set will generate a hash Base64 with your Moip account token and key to authenticate.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.BasicAuth;
Stringtoken = "01010101010101010101010101010101";
Stringkey = "ABABABABABABABABABABABABABABABABABABABAB";
Authenticationauth = newBasicAuth(token, key);

💡 If you don't know how to get your token and key, click here (you must be logged in).

By OAuth

The following set will create an OAuth authentication object.

💡 Click here to know how to get your token OAuth.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.OAuth;
Stringoauth = "8833c9eb036543b6b0acd685a76c9ead_v2";
Authenticationauth = newOAuth(oauth);

1.2 Environment

We have some environments that you can send your requests.

Sandbox

The test environment. You can use this to simulate all of your business scenarios.

Setup.Environment.SANDBOX
Production

"The environment of truth" 👀. This is the environment where the real transactions run.

Setup.Environment.PRODUCTION

💡 Before going to production, you need to request homologation of your application here.

Connect

The connect URL must be used only for operations involving another Moip accounts (request connect permission, generate the account accessToken, refresh account accessToken).

💡 If you want to know more about the Moip Connect flow, check here (PT-BR).

Sandbox

Setup.Environment.CONNECT_SANDBOX

Production

Setup.Environment.CONNECT_PRODUCTION

1.3 Finally

So, your setup must be something like this:

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(Setup.Environment.SANDBOX);

2. Create customer

With the setup created, you can make requests to Moip API. To start the basic e-commerce flow you need to create a customer. After all, it's whom will order your products or services.

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "10013390023")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "22226842")
);
Map<String, Object> shippingAddress = payloadFactory(
value("city", "Sao Paulo"),
value("district", "Itaim BiBi"),
value("street", "Av. Brigadeiro Faria Lima"),
value("streetNumber", "3064"),
value("state", "SP"),
value("country", "BRA"),
value("zipCode", "01451001")
);
Map<String, Object> customerRequestBody = payloadFactory(
value("ownId", "customer_own_id"),
value("fullname", "Test Moip da Silva"),
value("email", "test.moip@mail.com"),
value("birthDate", "1980-5-10"),
value("taxDocument", taxDocument),
value("phone", phone),
value("shippingAddress", shippingAddress)
);
Map<String, Object> responseCreation = Moip.API.customers().create(customerRequestBody, setup);

Read more about customer on API reference.

3. Create order

Customer created! It's buy time! 🎉

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> subtotals = payloadFactory(
value("shipping", 15000)
);
Map<String, Object> amount = payloadFactory(
value("currency", "BRL"),
value("subtotals", subtotals)
);
Map<String, Object> product1 = payloadFactory(
value("product", "Product 1 Description"),
value("category", "TOYS_AND_GAMES"),
value("quantity", 2),
value("detail", "Anakin's Light Saber"),
value("price", 100000000)
);
Map<String, Object> product2 = payloadFactory(
value("product", "Product 2 Description"),
value("category", "SCIENCE_AND_LABORATORY"),
value("quantity", 5),
value("detail", "Pym particles"),
value("price", 2450000000)
);
Listitems = newArrayList();
items.add(product1);
items.add(product2);
Map<String, Object> customer = payloadFactory(
value("id", "CUS-XXOBPZ80QLYP")
);
Map<String, Object> order = payloadFactory(
value("ownId", "order_own_id"),
value("amount", amount),
value("items", items),
value("customer", customer)
);
Map<String, Object> responseCreation = Moip.API.orders().create(order, setup);

Read more about order on API reference.

4. Create Payment

Alright! Do you have all you need? So, lets pay this order. 💰

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "33333333333")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "66778899")
);
Map<String, Object> holder = payloadFactory(
value("fullname", "Portador Teste Moip"),
value("birthdate", "1988-12-30"),
value("taxDocument", taxDocument),
value("phone", phone)
);
Map<String, Object> creditCard = payloadFactory(
value("hash", "CREDIT_CARD_HASH"),
value("store", false),
value("holder", holder)
);
Map<String, Object> fundingInstrument = payloadFactory(
value("method", "CREDIT_CARD"),
value("creditCard", creditCard)
);
Map<String, Object> payment = payloadFactory(
value("installmentCount", 1),
value("statementDescriptor", "minhaLoja.com"),
value("fundingInstrument", fundingInstrument)
);
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);

Read more about payment on API reference.

Other examples

If you want to see other functional examples, check the Wiki.

Exceptions treatment

errorscausestatus
UnautorizedExceptionto authentication errors== 401
ValidationExceptionto validation errors>= 400 && <= 499 (except 401)
UnexpectedExceptionto unexpected errors>= 500

⚠️ To catch these errors, use the bellow treatment:

importbr.com.moip.exception.UnauthorizedException;
importbr.com.moip.exception.UnexpectedException;
importbr.com.moip.exception.ValidationException;
try {
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);
} catch(UnauthorizedExceptione) {
// StatusCode == 401
} catch(UnexpectedExceptione) {
// StatusCode >= 500
} catch(ValidationExceptione) {
// StatusCode entre 400 e 499 (exceto 401)
}

Moip documentation

Docs

To stay up to date about the Moip Products, check the documentation.

References

Read more about the Moip APIs in API reference.

Getting help

We offer many ways to contact us, so if you have a question, do not hesitate, talk to us whatever you need. For questions about API or business rules, contact us by support or slack:slack:. But, if you have a question or suggestion about the SDK, feel free to open an issue or pull request.

Contributing

Do you have an enhancement suggest or found something to fix? Go ahead, help us and let your mark on Moip, open pull requests and issues against this project. If you want to do it, please read the CONTRIBUTING.md to be sure everyone follows the same structure and planning of the project. Remember, we ❤️ contributions. 🚀

About

🆕 Java SDK for Moip API v2 server-side integration.

Topics

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Repository files navigation

Moip Java SDK

CircleCICodacy BadgeSoftware LicenseSlack

Index

Require

Java v1.8ˆjava-cup

Installing

Gradle

Maven-central

Add the fallowing dependency to build.gradle in the project:

// https://mvnrepository.com/artifact/br.com.moip/sdk-java
compile group: 'br.com.moip', name: 'sdk-java', version: 'x.y.z'

Maven

Maven-central

Add the fallowing dependency to pom.xml in the project:

<!-- https://mvnrepository.com/artifact/br.com.moip/sdk-java -->
<dependency>
<groupId>br.com.moip</groupId>
<artifactId>sdk-java</artifactId>
<version>x.y.z</version>
</dependency>

Another installation methods

https://mvnrepository.com/artifact/br.com.moip/sdk-java

Simple flow

This step by step will exemplify the integration flow with simple usage examples.

1. Setup

Before making requests to Moip API its necessary create the Setup object, defining the environment, the connect timeout, the read timeout and the authentication that will be used.

1.1 Authentication

There are two ways to authenticate the request, some endpoints require a "highest authorization level", it will depend on the endpoint and type of request.

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(ENVIRONMENT);

By BasicAuth

The following set will generate a hash Base64 with your Moip account token and key to authenticate.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.BasicAuth;
Stringtoken = "01010101010101010101010101010101";
Stringkey = "ABABABABABABABABABABABABABABABABABABABAB";
Authenticationauth = newBasicAuth(token, key);

💡 If you don't know how to get your token and key, click here (you must be logged in).

By OAuth

The following set will create an OAuth authentication object.

💡 Click here to know how to get your token OAuth.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.OAuth;
Stringoauth = "8833c9eb036543b6b0acd685a76c9ead_v2";
Authenticationauth = newOAuth(oauth);

1.2 Environment

We have some environments that you can send your requests.

Sandbox

The test environment. You can use this to simulate all of your business scenarios.

Setup.Environment.SANDBOX
Production

"The environment of truth" 👀. This is the environment where the real transactions run.

Setup.Environment.PRODUCTION

💡 Before going to production, you need to request homologation of your application here.

Connect

The connect URL must be used only for operations involving another Moip accounts (request connect permission, generate the account accessToken, refresh account accessToken).

💡 If you want to know more about the Moip Connect flow, check here (PT-BR).

Sandbox

Setup.Environment.CONNECT_SANDBOX

Production

Setup.Environment.CONNECT_PRODUCTION

1.3 Finally

So, your setup must be something like this:

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(Setup.Environment.SANDBOX);

2. Create customer

With the setup created, you can make requests to Moip API. To start the basic e-commerce flow you need to create a customer. After all, it's whom will order your products or services.

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "10013390023")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "22226842")
);
Map<String, Object> shippingAddress = payloadFactory(
value("city", "Sao Paulo"),
value("district", "Itaim BiBi"),
value("street", "Av. Brigadeiro Faria Lima"),
value("streetNumber", "3064"),
value("state", "SP"),
value("country", "BRA"),
value("zipCode", "01451001")
);
Map<String, Object> customerRequestBody = payloadFactory(
value("ownId", "customer_own_id"),
value("fullname", "Test Moip da Silva"),
value("email", "test.moip@mail.com"),
value("birthDate", "1980-5-10"),
value("taxDocument", taxDocument),
value("phone", phone),
value("shippingAddress", shippingAddress)
);
Map<String, Object> responseCreation = Moip.API.customers().create(customerRequestBody, setup);

Read more about customer on API reference.

3. Create order

Customer created! It's buy time! 🎉

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> subtotals = payloadFactory(
value("shipping", 15000)
);
Map<String, Object> amount = payloadFactory(
value("currency", "BRL"),
value("subtotals", subtotals)
);
Map<String, Object> product1 = payloadFactory(
value("product", "Product 1 Description"),
value("category", "TOYS_AND_GAMES"),
value("quantity", 2),
value("detail", "Anakin's Light Saber"),
value("price", 100000000)
);
Map<String, Object> product2 = payloadFactory(
value("product", "Product 2 Description"),
value("category", "SCIENCE_AND_LABORATORY"),
value("quantity", 5),
value("detail", "Pym particles"),
value("price", 2450000000)
);
Listitems = newArrayList();
items.add(product1);
items.add(product2);
Map<String, Object> customer = payloadFactory(
value("id", "CUS-XXOBPZ80QLYP")
);
Map<String, Object> order = payloadFactory(
value("ownId", "order_own_id"),
value("amount", amount),
value("items", items),
value("customer", customer)
);
Map<String, Object> responseCreation = Moip.API.orders().create(order, setup);

Read more about order on API reference.

4. Create Payment

Alright! Do you have all you need? So, lets pay this order. 💰

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "33333333333")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "66778899")
);
Map<String, Object> holder = payloadFactory(
value("fullname", "Portador Teste Moip"),
value("birthdate", "1988-12-30"),
value("taxDocument", taxDocument),
value("phone", phone)
);
Map<String, Object> creditCard = payloadFactory(
value("hash", "CREDIT_CARD_HASH"),
value("store", false),
value("holder", holder)
);
Map<String, Object> fundingInstrument = payloadFactory(
value("method", "CREDIT_CARD"),
value("creditCard", creditCard)
);
Map<String, Object> payment = payloadFactory(
value("installmentCount", 1),
value("statementDescriptor", "minhaLoja.com"),
value("fundingInstrument", fundingInstrument)
);
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);

Read more about payment on API reference.

Other examples

If you want to see other functional examples, check the Wiki.

Exceptions treatment

errorscausestatus
UnautorizedExceptionto authentication errors== 401
ValidationExceptionto validation errors>= 400 && <= 499 (except 401)
UnexpectedExceptionto unexpected errors>= 500

⚠️ To catch these errors, use the bellow treatment:

importbr.com.moip.exception.UnauthorizedException;
importbr.com.moip.exception.UnexpectedException;
importbr.com.moip.exception.ValidationException;
try {
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);
} catch(UnauthorizedExceptione) {
// StatusCode == 401
} catch(UnexpectedExceptione) {
// StatusCode >= 500
} catch(ValidationExceptione) {
// StatusCode entre 400 e 499 (exceto 401)
}

Moip documentation

Docs

To stay up to date about the Moip Products, check the documentation.

References

Read more about the Moip APIs in API reference.

Getting help

We offer many ways to contact us, so if you have a question, do not hesitate, talk to us whatever you need. For questions about API or business rules, contact us by support or slack:slack:. But, if you have a question or suggestion about the SDK, feel free to open an issue or pull request.

Contributing

Do you have an enhancement suggest or found something to fix? Go ahead, help us and let your mark on Moip, open pull requests and issues against this project. If you want to do it, please read the CONTRIBUTING.md to be sure everyone follows the same structure and planning of the project. Remember, we ❤️ contributions. 🚀

About

🆕 Java SDK for Moip API v2 server-side integration.

Topics

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Repository files navigation

Moip Java SDK

CircleCICodacy BadgeSoftware LicenseSlack

Index

Require

Java v1.8ˆjava-cup

Installing

Gradle

Maven-central

Add the fallowing dependency to build.gradle in the project:

// https://mvnrepository.com/artifact/br.com.moip/sdk-java
compile group: 'br.com.moip', name: 'sdk-java', version: 'x.y.z'

Maven

Maven-central

Add the fallowing dependency to pom.xml in the project:

<!-- https://mvnrepository.com/artifact/br.com.moip/sdk-java -->
<dependency>
<groupId>br.com.moip</groupId>
<artifactId>sdk-java</artifactId>
<version>x.y.z</version>
</dependency>

Another installation methods

https://mvnrepository.com/artifact/br.com.moip/sdk-java

Simple flow

This step by step will exemplify the integration flow with simple usage examples.

1. Setup

Before making requests to Moip API its necessary create the Setup object, defining the environment, the connect timeout, the read timeout and the authentication that will be used.

1.1 Authentication

There are two ways to authenticate the request, some endpoints require a "highest authorization level", it will depend on the endpoint and type of request.

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(ENVIRONMENT);

By BasicAuth

The following set will generate a hash Base64 with your Moip account token and key to authenticate.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.BasicAuth;
Stringtoken = "01010101010101010101010101010101";
Stringkey = "ABABABABABABABABABABABABABABABABABABABAB";
Authenticationauth = newBasicAuth(token, key);

💡 If you don't know how to get your token and key, click here (you must be logged in).

By OAuth

The following set will create an OAuth authentication object.

💡 Click here to know how to get your token OAuth.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.OAuth;
Stringoauth = "8833c9eb036543b6b0acd685a76c9ead_v2";
Authenticationauth = newOAuth(oauth);

1.2 Environment

We have some environments that you can send your requests.

Sandbox

The test environment. You can use this to simulate all of your business scenarios.

Setup.Environment.SANDBOX
Production

"The environment of truth" 👀. This is the environment where the real transactions run.

Setup.Environment.PRODUCTION

💡 Before going to production, you need to request homologation of your application here.

Connect

The connect URL must be used only for operations involving another Moip accounts (request connect permission, generate the account accessToken, refresh account accessToken).

💡 If you want to know more about the Moip Connect flow, check here (PT-BR).

Sandbox

Setup.Environment.CONNECT_SANDBOX

Production

Setup.Environment.CONNECT_PRODUCTION

1.3 Finally

So, your setup must be something like this:

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(Setup.Environment.SANDBOX);

2. Create customer

With the setup created, you can make requests to Moip API. To start the basic e-commerce flow you need to create a customer. After all, it's whom will order your products or services.

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "10013390023")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "22226842")
);
Map<String, Object> shippingAddress = payloadFactory(
value("city", "Sao Paulo"),
value("district", "Itaim BiBi"),
value("street", "Av. Brigadeiro Faria Lima"),
value("streetNumber", "3064"),
value("state", "SP"),
value("country", "BRA"),
value("zipCode", "01451001")
);
Map<String, Object> customerRequestBody = payloadFactory(
value("ownId", "customer_own_id"),
value("fullname", "Test Moip da Silva"),
value("email", "test.moip@mail.com"),
value("birthDate", "1980-5-10"),
value("taxDocument", taxDocument),
value("phone", phone),
value("shippingAddress", shippingAddress)
);
Map<String, Object> responseCreation = Moip.API.customers().create(customerRequestBody, setup);

Read more about customer on API reference.

3. Create order

Customer created! It's buy time! 🎉

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> subtotals = payloadFactory(
value("shipping", 15000)
);
Map<String, Object> amount = payloadFactory(
value("currency", "BRL"),
value("subtotals", subtotals)
);
Map<String, Object> product1 = payloadFactory(
value("product", "Product 1 Description"),
value("category", "TOYS_AND_GAMES"),
value("quantity", 2),
value("detail", "Anakin's Light Saber"),
value("price", 100000000)
);
Map<String, Object> product2 = payloadFactory(
value("product", "Product 2 Description"),
value("category", "SCIENCE_AND_LABORATORY"),
value("quantity", 5),
value("detail", "Pym particles"),
value("price", 2450000000)
);
Listitems = newArrayList();
items.add(product1);
items.add(product2);
Map<String, Object> customer = payloadFactory(
value("id", "CUS-XXOBPZ80QLYP")
);
Map<String, Object> order = payloadFactory(
value("ownId", "order_own_id"),
value("amount", amount),
value("items", items),
value("customer", customer)
);
Map<String, Object> responseCreation = Moip.API.orders().create(order, setup);

Read more about order on API reference.

4. Create Payment

Alright! Do you have all you need? So, lets pay this order. 💰

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "33333333333")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "66778899")
);
Map<String, Object> holder = payloadFactory(
value("fullname", "Portador Teste Moip"),
value("birthdate", "1988-12-30"),
value("taxDocument", taxDocument),
value("phone", phone)
);
Map<String, Object> creditCard = payloadFactory(
value("hash", "CREDIT_CARD_HASH"),
value("store", false),
value("holder", holder)
);
Map<String, Object> fundingInstrument = payloadFactory(
value("method", "CREDIT_CARD"),
value("creditCard", creditCard)
);
Map<String, Object> payment = payloadFactory(
value("installmentCount", 1),
value("statementDescriptor", "minhaLoja.com"),
value("fundingInstrument", fundingInstrument)
);
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);

Read more about payment on API reference.

Other examples

If you want to see other functional examples, check the Wiki.

Exceptions treatment

errorscausestatus
UnautorizedExceptionto authentication errors== 401
ValidationExceptionto validation errors>= 400 && <= 499 (except 401)
UnexpectedExceptionto unexpected errors>= 500

⚠️ To catch these errors, use the bellow treatment:

importbr.com.moip.exception.UnauthorizedException;
importbr.com.moip.exception.UnexpectedException;
importbr.com.moip.exception.ValidationException;
try {
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);
} catch(UnauthorizedExceptione) {
// StatusCode == 401
} catch(UnexpectedExceptione) {
// StatusCode >= 500
} catch(ValidationExceptione) {
// StatusCode entre 400 e 499 (exceto 401)
}

Moip documentation

Docs

To stay up to date about the Moip Products, check the documentation.

References

Read more about the Moip APIs in API reference.

Getting help

We offer many ways to contact us, so if you have a question, do not hesitate, talk to us whatever you need. For questions about API or business rules, contact us by support or slack:slack:. But, if you have a question or suggestion about the SDK, feel free to open an issue or pull request.

Contributing

Do you have an enhancement suggest or found something to fix? Go ahead, help us and let your mark on Moip, open pull requests and issues against this project. If you want to do it, please read the CONTRIBUTING.md to be sure everyone follows the same structure and planning of the project. Remember, we ❤️ contributions. 🚀

About

🆕 Java SDK for Moip API v2 server-side integration.

Topics

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Repository files navigation

Moip Java SDK

CircleCICodacy BadgeSoftware LicenseSlack

Index

Require

Java v1.8ˆjava-cup

Installing

Gradle

Maven-central

Add the fallowing dependency to build.gradle in the project:

// https://mvnrepository.com/artifact/br.com.moip/sdk-java
compile group: 'br.com.moip', name: 'sdk-java', version: 'x.y.z'

Maven

Maven-central

Add the fallowing dependency to pom.xml in the project:

<!-- https://mvnrepository.com/artifact/br.com.moip/sdk-java -->
<dependency>
<groupId>br.com.moip</groupId>
<artifactId>sdk-java</artifactId>
<version>x.y.z</version>
</dependency>

Another installation methods

https://mvnrepository.com/artifact/br.com.moip/sdk-java

Simple flow

This step by step will exemplify the integration flow with simple usage examples.

1. Setup

Before making requests to Moip API its necessary create the Setup object, defining the environment, the connect timeout, the read timeout and the authentication that will be used.

1.1 Authentication

There are two ways to authenticate the request, some endpoints require a "highest authorization level", it will depend on the endpoint and type of request.

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(ENVIRONMENT);

By BasicAuth

The following set will generate a hash Base64 with your Moip account token and key to authenticate.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.BasicAuth;
Stringtoken = "01010101010101010101010101010101";
Stringkey = "ABABABABABABABABABABABABABABABABABABABAB";
Authenticationauth = newBasicAuth(token, key);

💡 If you don't know how to get your token and key, click here (you must be logged in).

By OAuth

The following set will create an OAuth authentication object.

💡 Click here to know how to get your token OAuth.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.OAuth;
Stringoauth = "8833c9eb036543b6b0acd685a76c9ead_v2";
Authenticationauth = newOAuth(oauth);

1.2 Environment

We have some environments that you can send your requests.

Sandbox

The test environment. You can use this to simulate all of your business scenarios.

Setup.Environment.SANDBOX
Production

"The environment of truth" 👀. This is the environment where the real transactions run.

Setup.Environment.PRODUCTION

💡 Before going to production, you need to request homologation of your application here.

Connect

The connect URL must be used only for operations involving another Moip accounts (request connect permission, generate the account accessToken, refresh account accessToken).

💡 If you want to know more about the Moip Connect flow, check here (PT-BR).

Sandbox

Setup.Environment.CONNECT_SANDBOX

Production

Setup.Environment.CONNECT_PRODUCTION

1.3 Finally

So, your setup must be something like this:

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(Setup.Environment.SANDBOX);

2. Create customer

With the setup created, you can make requests to Moip API. To start the basic e-commerce flow you need to create a customer. After all, it's whom will order your products or services.

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "10013390023")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "22226842")
);
Map<String, Object> shippingAddress = payloadFactory(
value("city", "Sao Paulo"),
value("district", "Itaim BiBi"),
value("street", "Av. Brigadeiro Faria Lima"),
value("streetNumber", "3064"),
value("state", "SP"),
value("country", "BRA"),
value("zipCode", "01451001")
);
Map<String, Object> customerRequestBody = payloadFactory(
value("ownId", "customer_own_id"),
value("fullname", "Test Moip da Silva"),
value("email", "test.moip@mail.com"),
value("birthDate", "1980-5-10"),
value("taxDocument", taxDocument),
value("phone", phone),
value("shippingAddress", shippingAddress)
);
Map<String, Object> responseCreation = Moip.API.customers().create(customerRequestBody, setup);

Read more about customer on API reference.

3. Create order

Customer created! It's buy time! 🎉

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> subtotals = payloadFactory(
value("shipping", 15000)
);
Map<String, Object> amount = payloadFactory(
value("currency", "BRL"),
value("subtotals", subtotals)
);
Map<String, Object> product1 = payloadFactory(
value("product", "Product 1 Description"),
value("category", "TOYS_AND_GAMES"),
value("quantity", 2),
value("detail", "Anakin's Light Saber"),
value("price", 100000000)
);
Map<String, Object> product2 = payloadFactory(
value("product", "Product 2 Description"),
value("category", "SCIENCE_AND_LABORATORY"),
value("quantity", 5),
value("detail", "Pym particles"),
value("price", 2450000000)
);
Listitems = newArrayList();
items.add(product1);
items.add(product2);
Map<String, Object> customer = payloadFactory(
value("id", "CUS-XXOBPZ80QLYP")
);
Map<String, Object> order = payloadFactory(
value("ownId", "order_own_id"),
value("amount", amount),
value("items", items),
value("customer", customer)
);
Map<String, Object> responseCreation = Moip.API.orders().create(order, setup);

Read more about order on API reference.

4. Create Payment

Alright! Do you have all you need? So, lets pay this order. 💰

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "33333333333")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "66778899")
);
Map<String, Object> holder = payloadFactory(
value("fullname", "Portador Teste Moip"),
value("birthdate", "1988-12-30"),
value("taxDocument", taxDocument),
value("phone", phone)
);
Map<String, Object> creditCard = payloadFactory(
value("hash", "CREDIT_CARD_HASH"),
value("store", false),
value("holder", holder)
);
Map<String, Object> fundingInstrument = payloadFactory(
value("method", "CREDIT_CARD"),
value("creditCard", creditCard)
);
Map<String, Object> payment = payloadFactory(
value("installmentCount", 1),
value("statementDescriptor", "minhaLoja.com"),
value("fundingInstrument", fundingInstrument)
);
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);

Read more about payment on API reference.

Other examples

If you want to see other functional examples, check the Wiki.

Exceptions treatment

errorscausestatus
UnautorizedExceptionto authentication errors== 401
ValidationExceptionto validation errors>= 400 && <= 499 (except 401)
UnexpectedExceptionto unexpected errors>= 500

⚠️ To catch these errors, use the bellow treatment:

importbr.com.moip.exception.UnauthorizedException;
importbr.com.moip.exception.UnexpectedException;
importbr.com.moip.exception.ValidationException;
try {
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);
} catch(UnauthorizedExceptione) {
// StatusCode == 401
} catch(UnexpectedExceptione) {
// StatusCode >= 500
} catch(ValidationExceptione) {
// StatusCode entre 400 e 499 (exceto 401)
}

Moip documentation

Docs

To stay up to date about the Moip Products, check the documentation.

References

Read more about the Moip APIs in API reference.

Getting help

We offer many ways to contact us, so if you have a question, do not hesitate, talk to us whatever you need. For questions about API or business rules, contact us by support or slack:slack:. But, if you have a question or suggestion about the SDK, feel free to open an issue or pull request.

Contributing

Do you have an enhancement suggest or found something to fix? Go ahead, help us and let your mark on Moip, open pull requests and issues against this project. If you want to do it, please read the CONTRIBUTING.md to be sure everyone follows the same structure and planning of the project. Remember, we ❤️ contributions. 🚀

About

🆕 Java SDK for Moip API v2 server-side integration.

Topics

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Repository files navigation

Moip Java SDK

CircleCICodacy BadgeSoftware LicenseSlack

Index

Require

Java v1.8ˆjava-cup

Installing

Gradle

Maven-central

Add the fallowing dependency to build.gradle in the project:

// https://mvnrepository.com/artifact/br.com.moip/sdk-java
compile group: 'br.com.moip', name: 'sdk-java', version: 'x.y.z'

Maven

Maven-central

Add the fallowing dependency to pom.xml in the project:

<!-- https://mvnrepository.com/artifact/br.com.moip/sdk-java -->
<dependency>
<groupId>br.com.moip</groupId>
<artifactId>sdk-java</artifactId>
<version>x.y.z</version>
</dependency>

Another installation methods

https://mvnrepository.com/artifact/br.com.moip/sdk-java

Simple flow

This step by step will exemplify the integration flow with simple usage examples.

1. Setup

Before making requests to Moip API its necessary create the Setup object, defining the environment, the connect timeout, the read timeout and the authentication that will be used.

1.1 Authentication

There are two ways to authenticate the request, some endpoints require a "highest authorization level", it will depend on the endpoint and type of request.

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(ENVIRONMENT);

By BasicAuth

The following set will generate a hash Base64 with your Moip account token and key to authenticate.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.BasicAuth;
Stringtoken = "01010101010101010101010101010101";
Stringkey = "ABABABABABABABABABABABABABABABABABABABAB";
Authenticationauth = newBasicAuth(token, key);

💡 If you don't know how to get your token and key, click here (you must be logged in).

By OAuth

The following set will create an OAuth authentication object.

💡 Click here to know how to get your token OAuth.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.OAuth;
Stringoauth = "8833c9eb036543b6b0acd685a76c9ead_v2";
Authenticationauth = newOAuth(oauth);

1.2 Environment

We have some environments that you can send your requests.

Sandbox

The test environment. You can use this to simulate all of your business scenarios.

Setup.Environment.SANDBOX
Production

"The environment of truth" 👀. This is the environment where the real transactions run.

Setup.Environment.PRODUCTION

💡 Before going to production, you need to request homologation of your application here.

Connect

The connect URL must be used only for operations involving another Moip accounts (request connect permission, generate the account accessToken, refresh account accessToken).

💡 If you want to know more about the Moip Connect flow, check here (PT-BR).

Sandbox

Setup.Environment.CONNECT_SANDBOX

Production

Setup.Environment.CONNECT_PRODUCTION

1.3 Finally

So, your setup must be something like this:

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(Setup.Environment.SANDBOX);

2. Create customer

With the setup created, you can make requests to Moip API. To start the basic e-commerce flow you need to create a customer. After all, it's whom will order your products or services.

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "10013390023")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "22226842")
);
Map<String, Object> shippingAddress = payloadFactory(
value("city", "Sao Paulo"),
value("district", "Itaim BiBi"),
value("street", "Av. Brigadeiro Faria Lima"),
value("streetNumber", "3064"),
value("state", "SP"),
value("country", "BRA"),
value("zipCode", "01451001")
);
Map<String, Object> customerRequestBody = payloadFactory(
value("ownId", "customer_own_id"),
value("fullname", "Test Moip da Silva"),
value("email", "test.moip@mail.com"),
value("birthDate", "1980-5-10"),
value("taxDocument", taxDocument),
value("phone", phone),
value("shippingAddress", shippingAddress)
);
Map<String, Object> responseCreation = Moip.API.customers().create(customerRequestBody, setup);

Read more about customer on API reference.

3. Create order

Customer created! It's buy time! 🎉

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> subtotals = payloadFactory(
value("shipping", 15000)
);
Map<String, Object> amount = payloadFactory(
value("currency", "BRL"),
value("subtotals", subtotals)
);
Map<String, Object> product1 = payloadFactory(
value("product", "Product 1 Description"),
value("category", "TOYS_AND_GAMES"),
value("quantity", 2),
value("detail", "Anakin's Light Saber"),
value("price", 100000000)
);
Map<String, Object> product2 = payloadFactory(
value("product", "Product 2 Description"),
value("category", "SCIENCE_AND_LABORATORY"),
value("quantity", 5),
value("detail", "Pym particles"),
value("price", 2450000000)
);
Listitems = newArrayList();
items.add(product1);
items.add(product2);
Map<String, Object> customer = payloadFactory(
value("id", "CUS-XXOBPZ80QLYP")
);
Map<String, Object> order = payloadFactory(
value("ownId", "order_own_id"),
value("amount", amount),
value("items", items),
value("customer", customer)
);
Map<String, Object> responseCreation = Moip.API.orders().create(order, setup);

Read more about order on API reference.

4. Create Payment

Alright! Do you have all you need? So, lets pay this order. 💰

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "33333333333")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "66778899")
);
Map<String, Object> holder = payloadFactory(
value("fullname", "Portador Teste Moip"),
value("birthdate", "1988-12-30"),
value("taxDocument", taxDocument),
value("phone", phone)
);
Map<String, Object> creditCard = payloadFactory(
value("hash", "CREDIT_CARD_HASH"),
value("store", false),
value("holder", holder)
);
Map<String, Object> fundingInstrument = payloadFactory(
value("method", "CREDIT_CARD"),
value("creditCard", creditCard)
);
Map<String, Object> payment = payloadFactory(
value("installmentCount", 1),
value("statementDescriptor", "minhaLoja.com"),
value("fundingInstrument", fundingInstrument)
);
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);

Read more about payment on API reference.

Other examples

If you want to see other functional examples, check the Wiki.

Exceptions treatment

errorscausestatus
UnautorizedExceptionto authentication errors== 401
ValidationExceptionto validation errors>= 400 && <= 499 (except 401)
UnexpectedExceptionto unexpected errors>= 500

⚠️ To catch these errors, use the bellow treatment:

importbr.com.moip.exception.UnauthorizedException;
importbr.com.moip.exception.UnexpectedException;
importbr.com.moip.exception.ValidationException;
try {
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);
} catch(UnauthorizedExceptione) {
// StatusCode == 401
} catch(UnexpectedExceptione) {
// StatusCode >= 500
} catch(ValidationExceptione) {
// StatusCode entre 400 e 499 (exceto 401)
}

Moip documentation

Docs

To stay up to date about the Moip Products, check the documentation.

References

Read more about the Moip APIs in API reference.

Getting help

We offer many ways to contact us, so if you have a question, do not hesitate, talk to us whatever you need. For questions about API or business rules, contact us by support or slack:slack:. But, if you have a question or suggestion about the SDK, feel free to open an issue or pull request.

Contributing

Do you have an enhancement suggest or found something to fix? Go ahead, help us and let your mark on Moip, open pull requests and issues against this project. If you want to do it, please read the CONTRIBUTING.md to be sure everyone follows the same structure and planning of the project. Remember, we ❤️ contributions. 🚀

About

🆕 Java SDK for Moip API v2 server-side integration.

Topics

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Repository files navigation

Moip Java SDK

CircleCICodacy BadgeSoftware LicenseSlack

Index

Require

Java v1.8ˆjava-cup

Installing

Gradle

Maven-central

Add the fallowing dependency to build.gradle in the project:

// https://mvnrepository.com/artifact/br.com.moip/sdk-java
compile group: 'br.com.moip', name: 'sdk-java', version: 'x.y.z'

Maven

Maven-central

Add the fallowing dependency to pom.xml in the project:

<!-- https://mvnrepository.com/artifact/br.com.moip/sdk-java -->
<dependency>
<groupId>br.com.moip</groupId>
<artifactId>sdk-java</artifactId>
<version>x.y.z</version>
</dependency>

Another installation methods

https://mvnrepository.com/artifact/br.com.moip/sdk-java

Simple flow

This step by step will exemplify the integration flow with simple usage examples.

1. Setup

Before making requests to Moip API its necessary create the Setup object, defining the environment, the connect timeout, the read timeout and the authentication that will be used.

1.1 Authentication

There are two ways to authenticate the request, some endpoints require a "highest authorization level", it will depend on the endpoint and type of request.

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(ENVIRONMENT);

By BasicAuth

The following set will generate a hash Base64 with your Moip account token and key to authenticate.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.BasicAuth;
Stringtoken = "01010101010101010101010101010101";
Stringkey = "ABABABABABABABABABABABABABABABABABABABAB";
Authenticationauth = newBasicAuth(token, key);

💡 If you don't know how to get your token and key, click here (you must be logged in).

By OAuth

The following set will create an OAuth authentication object.

💡 Click here to know how to get your token OAuth.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.OAuth;
Stringoauth = "8833c9eb036543b6b0acd685a76c9ead_v2";
Authenticationauth = newOAuth(oauth);

1.2 Environment

We have some environments that you can send your requests.

Sandbox

The test environment. You can use this to simulate all of your business scenarios.

Setup.Environment.SANDBOX
Production

"The environment of truth" 👀. This is the environment where the real transactions run.

Setup.Environment.PRODUCTION

💡 Before going to production, you need to request homologation of your application here.

Connect

The connect URL must be used only for operations involving another Moip accounts (request connect permission, generate the account accessToken, refresh account accessToken).

💡 If you want to know more about the Moip Connect flow, check here (PT-BR).

Sandbox

Setup.Environment.CONNECT_SANDBOX

Production

Setup.Environment.CONNECT_PRODUCTION

1.3 Finally

So, your setup must be something like this:

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(Setup.Environment.SANDBOX);

2. Create customer

With the setup created, you can make requests to Moip API. To start the basic e-commerce flow you need to create a customer. After all, it's whom will order your products or services.

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "10013390023")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "22226842")
);
Map<String, Object> shippingAddress = payloadFactory(
value("city", "Sao Paulo"),
value("district", "Itaim BiBi"),
value("street", "Av. Brigadeiro Faria Lima"),
value("streetNumber", "3064"),
value("state", "SP"),
value("country", "BRA"),
value("zipCode", "01451001")
);
Map<String, Object> customerRequestBody = payloadFactory(
value("ownId", "customer_own_id"),
value("fullname", "Test Moip da Silva"),
value("email", "test.moip@mail.com"),
value("birthDate", "1980-5-10"),
value("taxDocument", taxDocument),
value("phone", phone),
value("shippingAddress", shippingAddress)
);
Map<String, Object> responseCreation = Moip.API.customers().create(customerRequestBody, setup);

Read more about customer on API reference.

3. Create order

Customer created! It's buy time! 🎉

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> subtotals = payloadFactory(
value("shipping", 15000)
);
Map<String, Object> amount = payloadFactory(
value("currency", "BRL"),
value("subtotals", subtotals)
);
Map<String, Object> product1 = payloadFactory(
value("product", "Product 1 Description"),
value("category", "TOYS_AND_GAMES"),
value("quantity", 2),
value("detail", "Anakin's Light Saber"),
value("price", 100000000)
);
Map<String, Object> product2 = payloadFactory(
value("product", "Product 2 Description"),
value("category", "SCIENCE_AND_LABORATORY"),
value("quantity", 5),
value("detail", "Pym particles"),
value("price", 2450000000)
);
Listitems = newArrayList();
items.add(product1);
items.add(product2);
Map<String, Object> customer = payloadFactory(
value("id", "CUS-XXOBPZ80QLYP")
);
Map<String, Object> order = payloadFactory(
value("ownId", "order_own_id"),
value("amount", amount),
value("items", items),
value("customer", customer)
);
Map<String, Object> responseCreation = Moip.API.orders().create(order, setup);

Read more about order on API reference.

4. Create Payment

Alright! Do you have all you need? So, lets pay this order. 💰

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "33333333333")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "66778899")
);
Map<String, Object> holder = payloadFactory(
value("fullname", "Portador Teste Moip"),
value("birthdate", "1988-12-30"),
value("taxDocument", taxDocument),
value("phone", phone)
);
Map<String, Object> creditCard = payloadFactory(
value("hash", "CREDIT_CARD_HASH"),
value("store", false),
value("holder", holder)
);
Map<String, Object> fundingInstrument = payloadFactory(
value("method", "CREDIT_CARD"),
value("creditCard", creditCard)
);
Map<String, Object> payment = payloadFactory(
value("installmentCount", 1),
value("statementDescriptor", "minhaLoja.com"),
value("fundingInstrument", fundingInstrument)
);
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);

Read more about payment on API reference.

Other examples

If you want to see other functional examples, check the Wiki.

Exceptions treatment

errorscausestatus
UnautorizedExceptionto authentication errors== 401
ValidationExceptionto validation errors>= 400 && <= 499 (except 401)
UnexpectedExceptionto unexpected errors>= 500

⚠️ To catch these errors, use the bellow treatment:

importbr.com.moip.exception.UnauthorizedException;
importbr.com.moip.exception.UnexpectedException;
importbr.com.moip.exception.ValidationException;
try {
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);
} catch(UnauthorizedExceptione) {
// StatusCode == 401
} catch(UnexpectedExceptione) {
// StatusCode >= 500
} catch(ValidationExceptione) {
// StatusCode entre 400 e 499 (exceto 401)
}

Moip documentation

Docs

To stay up to date about the Moip Products, check the documentation.

References

Read more about the Moip APIs in API reference.

Getting help

We offer many ways to contact us, so if you have a question, do not hesitate, talk to us whatever you need. For questions about API or business rules, contact us by support or slack:slack:. But, if you have a question or suggestion about the SDK, feel free to open an issue or pull request.

Contributing

Do you have an enhancement suggest or found something to fix? Go ahead, help us and let your mark on Moip, open pull requests and issues against this project. If you want to do it, please read the CONTRIBUTING.md to be sure everyone follows the same structure and planning of the project. Remember, we ❤️ contributions. 🚀

About

🆕 Java SDK for Moip API v2 server-side integration.

Topics

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content
This repository was archived by the owner on Oct 15, 2024. It is now read-only.

Repository files navigation

Moip Java SDK

CircleCICodacy BadgeSoftware LicenseSlack

Index

Require

Java v1.8ˆjava-cup

Installing

Gradle

Maven-central

Add the fallowing dependency to build.gradle in the project:

// https://mvnrepository.com/artifact/br.com.moip/sdk-java
compile group: 'br.com.moip', name: 'sdk-java', version: 'x.y.z'

Maven

Maven-central

Add the fallowing dependency to pom.xml in the project:

<!-- https://mvnrepository.com/artifact/br.com.moip/sdk-java -->
<dependency>
<groupId>br.com.moip</groupId>
<artifactId>sdk-java</artifactId>
<version>x.y.z</version>
</dependency>

Another installation methods

https://mvnrepository.com/artifact/br.com.moip/sdk-java

Simple flow

This step by step will exemplify the integration flow with simple usage examples.

1. Setup

Before making requests to Moip API its necessary create the Setup object, defining the environment, the connect timeout, the read timeout and the authentication that will be used.

1.1 Authentication

There are two ways to authenticate the request, some endpoints require a "highest authorization level", it will depend on the endpoint and type of request.

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(ENVIRONMENT);

By BasicAuth

The following set will generate a hash Base64 with your Moip account token and key to authenticate.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.BasicAuth;
Stringtoken = "01010101010101010101010101010101";
Stringkey = "ABABABABABABABABABABABABABABABABABABABAB";
Authenticationauth = newBasicAuth(token, key);

💡 If you don't know how to get your token and key, click here (you must be logged in).

By OAuth

The following set will create an OAuth authentication object.

💡 Click here to know how to get your token OAuth.

importbr.com.moip.auth.Authentication;
importbr.com.moip.auth.OAuth;
Stringoauth = "8833c9eb036543b6b0acd685a76c9ead_v2";
Authenticationauth = newOAuth(oauth);

1.2 Environment

We have some environments that you can send your requests.

Sandbox

The test environment. You can use this to simulate all of your business scenarios.

Setup.Environment.SANDBOX
Production

"The environment of truth" 👀. This is the environment where the real transactions run.

Setup.Environment.PRODUCTION

💡 Before going to production, you need to request homologation of your application here.

Connect

The connect URL must be used only for operations involving another Moip accounts (request connect permission, generate the account accessToken, refresh account accessToken).

💡 If you want to know more about the Moip Connect flow, check here (PT-BR).

Sandbox

Setup.Environment.CONNECT_SANDBOX

Production

Setup.Environment.CONNECT_PRODUCTION

1.3 Finally

So, your setup must be something like this:

importbr.com.moip.models.Setup;
Setupsetup = newSetup().setAuthentication(auth).setEnvironment(Setup.Environment.SANDBOX);

2. Create customer

With the setup created, you can make requests to Moip API. To start the basic e-commerce flow you need to create a customer. After all, it's whom will order your products or services.

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "10013390023")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "22226842")
);
Map<String, Object> shippingAddress = payloadFactory(
value("city", "Sao Paulo"),
value("district", "Itaim BiBi"),
value("street", "Av. Brigadeiro Faria Lima"),
value("streetNumber", "3064"),
value("state", "SP"),
value("country", "BRA"),
value("zipCode", "01451001")
);
Map<String, Object> customerRequestBody = payloadFactory(
value("ownId", "customer_own_id"),
value("fullname", "Test Moip da Silva"),
value("email", "test.moip@mail.com"),
value("birthDate", "1980-5-10"),
value("taxDocument", taxDocument),
value("phone", phone),
value("shippingAddress", shippingAddress)
);
Map<String, Object> responseCreation = Moip.API.customers().create(customerRequestBody, setup);

Read more about customer on API reference.

3. Create order

Customer created! It's buy time! 🎉

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> subtotals = payloadFactory(
value("shipping", 15000)
);
Map<String, Object> amount = payloadFactory(
value("currency", "BRL"),
value("subtotals", subtotals)
);
Map<String, Object> product1 = payloadFactory(
value("product", "Product 1 Description"),
value("category", "TOYS_AND_GAMES"),
value("quantity", 2),
value("detail", "Anakin's Light Saber"),
value("price", 100000000)
);
Map<String, Object> product2 = payloadFactory(
value("product", "Product 2 Description"),
value("category", "SCIENCE_AND_LABORATORY"),
value("quantity", 5),
value("detail", "Pym particles"),
value("price", 2450000000)
);
Listitems = newArrayList();
items.add(product1);
items.add(product2);
Map<String, Object> customer = payloadFactory(
value("id", "CUS-XXOBPZ80QLYP")
);
Map<String, Object> order = payloadFactory(
value("ownId", "order_own_id"),
value("amount", amount),
value("items", items),
value("customer", customer)
);
Map<String, Object> responseCreation = Moip.API.orders().create(order, setup);

Read more about order on API reference.

4. Create Payment

Alright! Do you have all you need? So, lets pay this order. 💰

importstaticbr.com.moip.helpers.PayloadFactory.payloadFactory;
importstaticbr.com.moip.helpers.PayloadFactory.value;
Map<String, Object> taxDocument = payloadFactory(
value("type", "CPF"),
value("number", "33333333333")
);
Map<String, Object> phone = payloadFactory(
value("countryCode", "55"),
value("areaCode", "11"),
value("number", "66778899")
);
Map<String, Object> holder = payloadFactory(
value("fullname", "Portador Teste Moip"),
value("birthdate", "1988-12-30"),
value("taxDocument", taxDocument),
value("phone", phone)
);
Map<String, Object> creditCard = payloadFactory(
value("hash", "CREDIT_CARD_HASH"),
value("store", false),
value("holder", holder)
);
Map<String, Object> fundingInstrument = payloadFactory(
value("method", "CREDIT_CARD"),
value("creditCard", creditCard)
);
Map<String, Object> payment = payloadFactory(
value("installmentCount", 1),
value("statementDescriptor", "minhaLoja.com"),
value("fundingInstrument", fundingInstrument)
);
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);

Read more about payment on API reference.

Other examples

If you want to see other functional examples, check the Wiki.

Exceptions treatment

errorscausestatus
UnautorizedExceptionto authentication errors== 401
ValidationExceptionto validation errors>= 400 && <= 499 (except 401)
UnexpectedExceptionto unexpected errors>= 500

⚠️ To catch these errors, use the bellow treatment:

importbr.com.moip.exception.UnauthorizedException;
importbr.com.moip.exception.UnexpectedException;
importbr.com.moip.exception.ValidationException;
try {
Map<String, Object> newPay = Moip.API.payments().pay(payment, "order_id", setup);
} catch(UnauthorizedExceptione) {
// StatusCode == 401
} catch(UnexpectedExceptione) {
// StatusCode >= 500
} catch(ValidationExceptione) {
// StatusCode entre 400 e 499 (exceto 401)
}

Moip documentation

Docs

To stay up to date about the Moip Products, check the documentation.

References

Read more about the Moip APIs in API reference.

Getting help

We offer many ways to contact us, so if you have a question, do not hesitate, talk to us whatever you need. For questions about API or business rules, contact us by support or slack:slack:. But, if you have a question or suggestion about the SDK, feel free to open an issue or pull request.

Contributing

Do you have an enhancement suggest or found something to fix? Go ahead, help us and let your mark on Moip, open pull requests and issues against this project. If you want to do it, please read the CONTRIBUTING.md to be sure everyone follows the same structure and planning of the project. Remember, we ❤️ contributions. 🚀

About

🆕 Java SDK for Moip API v2 server-side integration.

Topics

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages