Netki Partner Client

Library used to access Netki's Partner API

Лицензия

Лицензия

Категории

Категории

Сеть CLI Взаимодействие с пользователем
Группа

Группа

com.netki
Идентификатор

Идентификатор

netki-partner-client
Последняя версия

Последняя версия

0.0.3
Дата

Дата

Тип

Тип

jar
Описание

Описание

Netki Partner Client
Library used to access Netki's Partner API
Ссылка на сайт

Ссылка на сайт

https://netki.com
Система контроля версий

Система контроля версий

https://github.com/netkicorp/java-partner-client

Скачать netki-partner-client

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/com.netki/netki-partner-client/ -->
<dependency>
    <groupId>com.netki</groupId>
    <artifactId>netki-partner-client</artifactId>
    <version>0.0.3</version>
</dependency>
// https://jarcasting.com/artifacts/com.netki/netki-partner-client/
implementation 'com.netki:netki-partner-client:0.0.3'
// https://jarcasting.com/artifacts/com.netki/netki-partner-client/
implementation ("com.netki:netki-partner-client:0.0.3")
'com.netki:netki-partner-client:jar:0.0.3'
<dependency org="com.netki" name="netki-partner-client" rev="0.0.3">
  <artifact name="netki-partner-client" type="jar" />
</dependency>
@Grapes(
@Grab(group='com.netki', module='netki-partner-client', version='0.0.3')
)
libraryDependencies += "com.netki" % "netki-partner-client" % "0.0.3"
[com.netki/netki-partner-client "0.0.3"]

Зависимости

compile (5)

Идентификатор библиотеки Тип Версия
org.codehaus.jackson : jackson-mapper-asl jar 1.9.13
com.google.http-client : google-http-client jar 1.20.0
commons-io : commons-io jar 2.4
com.madgag.spongycastle : pkix jar 1.51.0.0
com.google.guava : guava jar 18.0

test (5)

Идентификатор библиотеки Тип Версия
junit : junit jar 4.12
org.mockito : mockito-all jar 1.10.19
org.powermock : powermock-api-mockito jar 1.6.2
org.powermock : powermock-module-junit4 jar 1.6.2
com.github.tomakehurst : wiremock jar 1.43

Модули Проекта

Данный проект не имеет модулей.

Netki Java Partner Client

JitPack Badge Maven Central

This is the Netki Partner library written in Java. It allows you to use the Netki API to CRUD all of your partner data:

  • Wallet Names
  • Domains
  • Partners

Library Inclusion

This library can be included directly from Maven Central / OSS Sonatype.

Maven
<dependency>
    <groupId>com.netki</groupId>
    <artifactId>netki-partner-client</artifactId>
</dependency>
Gradle
'com.netki:netki-partner-client:0.0.1+'

Wallet Name Example

String partnerId = "partner_id";
String apiKey = "api_key";

// Access Type: Partner ID & API Key
NetkiClient client = new NetkiClient(partnerId, apiKey, "https://api.netki.com");

List<Domain> domains;
List<Partner> partners;
List<WalletName> walletNames;
List<WalletName> filteredWalletNames;

// Get All Domains
domains = client.getDomains();

// Create a new domain not belonging to a partner
Domain newTestDomain = client.createDomain("testdomain.com", null);

// Get All Partners
partners = client.getPartners();

// Create a new partner
Partner newPartner = client.createPartner("Partner");

// Create a new domain belonging to a partner
Domain partnerTestDomain = client.createDomain("partnerdomain.com", newPartner);

// Delete Domain 
partnerTestDomain.delete();

// Delete Partner
newPartner.delete();

// Get All Wallet Names
walletNames = client.getWalletNames();

// Update a Wallet Name's BTC Wallet Address
WalletName walletNameToUpdate = walletNames.get(0);
walletNameToUpdate.setCurrencyAddress("btc", "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy");
walletNameToUpdate.save();

// Create a New Wallet Name
WalletName walletName = client.createWalletName("testdomain.com", "testwallet", "externalId");
walletName.setCurrencyAddress("btc", "1CpLXM15vjULK3ZPGUTDMUcGATGR9xGitv");
walletName.save();

// Add Litecoin Wallet Address
walletName.setCurrencyAddress("ltc", "LQVeWKif6kR1Z5KemVcijyNTL2dE3SfYQM");
walletName.save();

// Get all Wallet Names for a Domain
filteredWalletNames = client.getWalletNames("testdomain.com", null);

// Get all Wallet Names matching an External ID
filteredWalletNames = client.getWalletNames(null, "externalId");

// Get all Wallet Names for a Domain matching an External ID
filteredWalletNames = client.getWalletNames("testdomain.com", "externalId");

// Delete Wallet Name
walletName.delete();

Distributed API Access for Wallet Names

When using Distributed API Access, the client has access only to their Wallet Name(s) created using their user's public key.

String partnerKskDerHex = "3056301006072a8648ce3d020106052...";
String partnerKeySignDerHex = "30450221008cecbf4776c5d6ef713c...";
KeyPair userKey;

// Generate New ECDSA Key
try {
    Security.addProvider(new BouncyCastleProvider());
    KeyPairGenerator generator = KeyPairGenerator.getInstance("ECDSA", "SC");
    ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("secp256k1");
    generator.initialize(ecSpec, new SecureRandom());
    userkey = generator.generateKeyPair();
} catch (Exception e) {
    e.printStackTrace();
}

// Access Type: Distributed API Access (Remote Access for WalletName CRUD)
NetkiClient client = new NetkiClient(partnerKskDerHex, partnerKeySignDerHex, userKey, "https://api.netki.com");

Certificate API Access with Partner Signed Authentication NetkiClient

NetkiClient client = new NetkiClient(partnerId, userKey);

Security.addProvider(new BouncyCastleProvider());
KeyPair keyPair;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");

// Generate New RSA Key
try {
    KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA", "SC");
    generator.initialize(1024);
    keyPair = generator.generateKeyPair();
} catch (Exception e) {
    e.printStackTrace();
}

// Get Available Products
List<Product> products = client.getAvailableProducts();
Product selectedProduct = products.get(0);

// Create Certificate
Certificate cert = client.createCertificate();
cert.setProductId(selectedProduct.getId());

// Setup CustomerData for Submission
CustomerData cd = new CustomerData();
cd.setCity("Los Angeles");
cd.setCountry("US");
cd.setFirstName("Testy");
cd.setLastName("Testerson");
cd.setStreetAddress("123 Main St.");
cd.setPostalCode("11111");
cd.setOrganizationName("Netki, Inc.");
cd.setEmail("user@domain.com");
cd.setSsn("1234567890");
cd.setPhone("+18182234567");

// Create Multiple IdentityDocument objects (in this case: Driver's License and Passport)
IdentityDocument id1 = new IdentityDocument();
id1.setIdentity("12345678");
id1.setType("drivers licence");
id1.setState("CA");

IdentityDocument id2 = new IdentityDocument();
id2.setIdentity("P12345678");
id2.setType("passport");
id2.setState("CA");
id2.setDlRtaNumber("12345");

try {
    cd.setDob(sdf.parse("1980-04-02"));
    id1.setExpiration(sdf.parse("2030-01-02"));
    id2.setExpiration(sdf.parse("2031-07-12"));
} catch (ParseException e) {
    e.printStackTrace();
}

cd.addIdentity(id1);
cd.addIdentity(id2);
cert.setCustomerData(cd);
try {
    
    // Submit User Data for Tokenization
    cert.submitUserData();
    
    // Submit Certificate Order
    cert.submitOrder();
    
    // Submit CSR Based on CustomerData
    cert.submitCsr();
    
    // Poll for order completion
    while(!cert.isOrderComplete()) {
        cert.getStatus();
        Thread.sleep(10000);
    }
} catch (Exception e) {
    e.printStackTrace();
}
com.netki

Netki

Wallet Names: Making bitcoin accessible to the mainstream

Версии библиотеки

Версия
0.0.3
0.0.2
0.0.1