bitpay/php-bitpay-client

View on GitHub
examples/CreatePayout.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php
/**
 * Copyright (c) 2014-2015 BitPay
 */

/**
 * WARNING - This example will NOT work until you have generated your public
 * keys and also see the documentation on how to save those keys.
 *
 * Also please be aware that you CANNOT create an invoice until you have paired
 * the keys and received a token back. The token is usesd with the request.
 */

require __DIR__ . '/../vendor/autoload.php';

$time = gmdate("Y-m-d\TH:i:s\.", 1414691179)."000Z";

$token = new \Bitpay\Token();
$token
    ->setFacade('payroll')
    ->setToken('<api token>'); //this is a special api that requires a explicit payroll relationship with BitPay

$instruction1 = new \Bitpay\PayoutInstruction();
$instruction1
    ->setAmount(100)
    ->setAddress('2NA5EVH9HHHhM5RxSEWf54gP4v397EmFTxi')
    ->setLabel('Paying Someone');

$payout = new \Bitpay\Payout();
$payout
    ->setEffectiveDate($time)
    ->setAmount(100)
    ->setCurrency(new \Bitpay\Currency('USD'))
    ->setPricingMethod('bitcoinbestbuy')
    ->setReference('a reference, can be json')
    ->setNotificationEmail('joshlewis@gmail.com')
    ->setNotificationUrl('https://example.com/ipn.php')
    ->setToken($token)
    ->addInstruction($instruction1);

#$private = new \Bitpay\PrivateKey();
#$private->setHex('5555550968bc659873d723374213fa5bf7a30c24f0f0713aa798eb7daa7230fc'); 
//this is your private key in some form (see GetKeys.php)

#$public = new \Bitpay\PublicKey();
#$public->generate($private);

$storageEngine = new \Bitpay\Storage\EncryptedFilesystemStorage('TopSecretPassword');
$private    = $storageEngine->load('/tmp/private_key.key');
#$public     = $storageEngine->load('/tmp/public_key.key');
#error_log('$private '.$private);
$public = new \Bitpay\PublicKey();
$public->generate($private);

$network = new \Bitpay\Network\Testnet();
$adapter = new \Bitpay\Client\Adapter\CurlAdapter();


$bitpay = new \Bitpay\Bitpay();

$client = new \Bitpay\Client\Client();
$client->setPrivateKey($private);
$client->setPublicKey($public);
$client->setNetwork($network);
$client->setAdapter($adapter);

$client->createPayout($payout);

print_r($payout);