Как использовать Bitpay с Java

Я нашел этот пост о BitPay, но не очень понятно, как я могу его использовать.

https://help.bitpay.com/development/how-do-i-use-the-bitpay-java-client-library

Я выполнил этот код:

public void createInvoice() throws BitPayException
    {
        ECKey key = KeyUtils.createEcKey();
        BitPay bitpay = new BitPay(key);
        InvoiceBuyer buyer = new InvoiceBuyer();
        buyer.setName("Satoshi");
        buyer.setEmail("[email protected]");

        Invoice invoice = new Invoice(100.0, "USD");
        invoice.setBuyer(buyer);
        invoice.setFullNotifications(true);
        invoice.setNotificationEmail("[email protected]");
        invoice.setPosData("ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890");

        Invoice createInvoice = bitpay.createInvoice(invoice);
    }

Как реализовать закрытый ключ?

Ответ 1

Этот ответ, я считаю, найден в следующем файле: https://github.com/bitpay/java-bitpay-client/blob/master/src/main/java/controller/BitPay.java - то есть, вы должны установить свой закрытый ключ в экземпляре клиента BitPay. Там вы можете найти подходящий конструктор для своих нужд. Вы захотите использовать одно или несколько из следующих полей в зависимости от ваших конкретных потребностей:

private ECKey _ecKey = null;
private String _identity = "";
private String _clientName = "";
private Hashtable<String, String> _tokenCache;

Изменение: шифрование и дешифрование вашего закрытого ключа существует здесь: https://github.com/bitpay/java-bitpay-client/blob/master/src/main/java/controller/KeyUtils.java

Если, например, вы использовали следующий конструктор:

public BitPay(URI privateKey) throws BitPayException, URISyntaxException,        IOException {
    this(KeyUtils.loadEcKey(privateKey), BITPAY_PLUGIN_INFO, BITPAY_URL);
}

Вы должны пройти в URI для своего закрытого ключа.

Конкретные инструкции по этому вопросу можно найти здесь: https://github.com/bitpay/java-bitpay-client/blob/master/GUIDE.md

Два очень простых примера:

BitPay bitpay = new BitPay();
ECKey key = KeyUtils.createEcKey();
this.bitpay = new BitPay(key);

Номер два:

// Create the private key external to the SDK, store it in a file, and inject    the private key into the SDK.
String privateKey = KeyUtils.getKeyStringFromFile(privateKeyFile);
ECKey key = KeyUtils.createEcKeyFromHexString(privateKey);
this.bitpay = new BitPay(key);

После реализации закрытого ключа вам нужно будет инициализировать клиент и подключиться к серверу.