BitPay API gateway payment Bitcoin - pairing

1.2k Views Asked by At

I am struggling with bitpay API. So far i generated public,priate and sin keys. I stored them and now i want to pair with special key from bitpay.com Here is my error and below its my whole code. Anyone can help ?

Public Key: 0309f03bc0d566c411aeb55b8be57b0485d28706ace9b1a198d053212bde06d718 Private Key: 77cec96ea11e3d35ec2817db6951167755095f8a45c508028ca22734fe7e9962 Sin Key: Tf2XSANqca54VHQG31RXjAY5EKdyaysHtct 
Fatal error: Uncaught Bitpay\Client\ArgumentException: pairing code is not legal in /var/www/dev.simplemining.net/vendor/bitpay/php-client/src/Bitpay/Client/Client.php:494 Stack trace: #0 /var/www/dev.simplemining.net/controller/account.php(65): Bitpay\Client\Client->createToken(Array) #1 /var/www/dev.simplemining.net/index.php(20): require('/var/www/dev.si...') #2 {main} thrown in /var/www/dev.simplemining.net/vendor/bitpay/php-client/src/Bitpay/Client/Client.php on line 494



require __DIR__ . '/../vendor/autoload.php';
$private = new \Bitpay\PrivateKey('/tmp/private.key');
$public  = new \Bitpay\PublicKey('/tmp/public.key');
$sin     = new \Bitpay\SinKey('/tmp/sin.key');
// Generate Private Key values
$private->generate();
// Generate Public Key values
$public->setPrivateKey($private);
$public->generate();
// Generate Sin Key values
$sin->setPublicKey($public);
$sin->generate();
printf("Public Key:  %s\n", $public);
printf("Private Key: %s\n", $private);
printf("Sin Key:     %s\n\n", $sin);
$manager = new \Bitpay\KeyManager(new \Bitpay\Storage\EncryptedFilesystemStorage('fdgkjnfdERTPWIEFMVwe'));
$manager->persist($private);
$manager->persist($public);
$manager->persist($sin);



$bitpay = new \Bitpay\Bitpay(
    array(
        'bitpay' => array(
            'network'     => 'testnet', // testnet or livenet, default is livenet
            'public_key'  => '/tmp/public.key', //see tutorial/001.php and 002.php
            'private_key' => '/tmp/private.key',
            'key_storage' => 'Bitpay\Storage\EncryptedFilesystemStorage',
            'key_storage_password' => 'fdgkjnfdERTPWIEFMVwe'
        )
    )
);
/**
 * Create the client that will be used to send requests to BitPay's API
 */
$client = $bitpay->get('client');


// @var \Bitpay\KeyManager
$manager   = $bitpay->get('key_manager');
$publicKey = $manager->load($bitpay->getContainer()->getParameter('bitpay.public_key'));
$sin = new \Bitpay\SinKey();
$sin->setPublicKey($publicKey);
$sin->generate();

// @var \Bitpay\TokenInterface
$token = $client->createToken(
    array(
        'id'          => (string) $sin,
        'pairingCode' => 'fees',
        'label'       => 'y1FdbaA',
    )
);
1

There are 1 best solutions below

1
On

I was faced this problem. Then I used properly this "https://github.com/bitpay/php-bitpay-client" library and follow the steps.

So first of all download latest bitpay library and configure properly as per document read me file.

You can integrate with tutorial from https://github.com/bitpay/php-bitpay-client/tree/master/examples/tutorial.