Online Marketplace Payments
- gson 2.2.2
- httpclient 4.2.1
- commons-lang 3.1
- commons-codec 1.7
Which you can download to target/dependency
using:
$ mvn dependency:copy-dependencies
Please use appropriately tagged github issues to request features or report bugs.
Add this dependency to your pom.xml
:
<dependency>
<groupId>com.balancedpayments</groupId>
<artifactId>balancedpayments</artifactId>
<version>0.6</version>
</dependency>
NOTE: the <version>XXX</version>
can be out of date in this README.
APIKey key = new APIKey();
key.save();
System.out.printf("Our secret is %s\n", key.secret);
System.out.printf("Configure with our secret\n");
Balanced.configure(key.secret);
System.out.printf("Create marketplace\n");
Marketplace mp = new Marketplace();
mp.save();
System.out.printf("Who am I? Easy Merchant.me().uri -> %s\n", Merchant.me().uri);
System.out.printf("Whats my marketplace? Easy Marketplace.mine().uri -> %s\n", Marketplace.mine().uri);
System.out.printf("My marketplace's name is: %s\n", mp.name);
System.out.printf("Changing it to TestFooey..\n");
mp.name = "TestFooey";
mp.save();
System.out.printf("My marketplace's name is now: %s\n", mp.name);
System.out.printf("Cool, let's create (aka tokenize) a card!\n");
Card card = mp.tokenizeCard("5105105105105100", 12, 2015);
System.out.printf("Our card is %s.\n", card.uri);
System.out.printf("Now create our **buyer** account associated with that card\n");
Account buyer = mp.createBuyerAccount("buyer", "[email protected]", card.uri, null);
System.out.printf("Our **buyer** account is %s.\n", buyer.uri);
System.out.printf("Lets hold some moneyfrom the buyer, say $15\n");
Hold hold = buyer.hold(1500);
System.out.printf("And now capture that money\n");
Debit debit = hold.capture();
System.out.printf("Which gives us this debit %s\n", debit.uri);
mp.refresh();
System.out.printf("Sweet, now we have this much in escrow %s\n", mp.in_escrow);
System.out.printf("But lets refund the full amount\n");
Refund refund = debit.refund();
mp.refresh();
System.out.printf("So now we have this much in escrow %s\n", mp.in_escrow);
System.out.printf("That was the buyer, now lets add a **merchant** account\n");
Map<String, Object> identity = new HashMap<String, Object>();
identity.put("type", "person");
identity.put("name", "Billy Jones");
identity.put("street_address", "801 High St");
identity.put("postal_code", "94301");
identity.put("country_code", "USA");
identity.put("dob", "1979-02");
identity.put("phone_number", "+16505551234");
BankAccount bank_account = mp.tokenizeBankAccount(
"Jack Q Merchant",
"123123123",
"123123123",
BankAccount.Checking);
Account merchant = mp.createMerchantAccount(
"Jack Q Merchant",
"[email protected]",
bank_account.uri,
identity,
null);
System.out.printf("Our **merchant** account is %s.\n", merchant.uri);
System.out.printf("Our **buyer** wants to purchase something from our **merchant** for $130.\n");
debit = buyer.debit(13000, "TestFooey.COM");
System.out.printf("Lets credit the **merchant** $110 of that $130.\n");
Credit credit = merchant.credit(11000, "Purchase on TestFooey");
System.out.printf("We are the marketplace and charge 15%%, so we just earned $20!\n");
mp.owner_account.credit(2000, "Commission for TestFooey");
System.out.printf("Now the **buyer** wants to deactivate their card.\n");
card.is_valid = false;
card.save();
System.out.printf("Hey I stored the URI, how can I get the object?\n");
Account.get(buyer.uri);
Credit.get(credit.uri);
Debit.get(debit.uri);
System.out.printf("And there you have it :)\n");
See https://www.balancedpayments.com/docs/api#java for tutorials and documentation.
$ mvn test
$ mvn clean deploy
$ mvn release:clean
$ mvn release:prepare
$ mvn release:perform
Done using the Sonatype Nexus UI.
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Write your code and tests
- Ensure all tests still pass
- Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new pull request
- You!