Zero-dependency toolkit to operate with Genome Merchant API.
Obtain credentials from Genome Portal and configure MerchantAccountManager:
import eu.genome.Environment;
import eu.genome.merchant.MerchantAccountManager;
String login = "...";
String password = "...";
MerchantAccountManager merchantAccountManager = new MerchantAccountManager(
login,
password,
Environment.production()
);Obtain API key and secret for Hosted Payment Page on Genome Portal (they are not the same as Merchant credentials):
import eu.genome.merchant.HostedPaymentPageManager;
import eu.genome.merchant.SignatureMode;
String hppApiKey = "...";
String hppApiSecret = "...";
SignatureMode signatureMode = SignatureMode.MODE_A;
HostedPaymentPageManager hostedPaymentPageManager = merchantAccountManager.getHostedPaymentPageManager(
hppApiKey,
hppApiSecret,
signatureMode
);import eu.genome.merchant.HostedPaymentRequest;
import eu.genome.merchant.HostedPaymentRequestBuilder;
HostedPaymentRequestBuilder request = HostedPaymentRequest.builder(
"orderId",
"userId",
"mcc",
"EUR",
new BigDecimal("9.99")
);
String url = hostedPaymentPageManager.generateRedirectUrl(request);Map<String, String> callbackHeaders = null; // TODO provide
byte[] callbackBody = null; // TODO provide
try {
hostedPaymentPageManager.assertCallbackSignature(headers, body);
} catch (CallbackSignatureAssertionException e) {
// TODO handle
}All settings are stored in Environment object - you may implement own with own rules, providing
custom urls, skipping validation rules or using custom logger.
This library has no strict binding for logging facility but introduces own Logger instead:
import eu.genome.Environment;
import eu.genome.Logger;
Logger logger = Logger.stdOut();
Environment environment = Environment.production().withLogger(logger);
// TODO use environment during MerchantAccountManager instantiationThis library has reference SLF4j implementation that can be used if your backend uses this logging facility:
import eu.genome.Environment;
import eu.genome.Logger;
import eu.genome.slf4j.Slf4jLoggerAdapter;
Logger logger = new Slf4jLoggerAdapter("genome");
Environment environment = Environment.production().withLogger(logger);
// TODO use environment during MerchantAccountManager instantiation