PHP code example of quantumca / laravel-coinpayments
1. Go to this page and download the library: Download quantumca/laravel-coinpayments library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
quantumca / laravel-coinpayments example snippets
// add directly from the app
$app->register(\Kevupton\LaravelCoinpayments\Providers\LaravelCoinpaymentsServiceProvider::class);
'providers' => [
// Other Service Providers
\Kevupton\LaravelCoinpayments\Providers\LaravelCoinpaymentsServiceProvider::class,
],
return array(
// prefix to each of the tables in the database
'database_prefix' => env('COINPAYMENTS_DB_PREFIX', 'cp_'),
'merchant_id' => env('COINPAYMENTS_MERCHANT_ID'),
// Your API public key associated with your coinpayments account
'public_key' => env('COINPAYMENTS_PUBLIC_KEY'),
// Your API private key associated with your coinpayments account
'private_key' => env('COINPAYMENTS_PRIVATE_KEY'),
// This is used to verify that an IPN is from us, use a good random string nobody can guess.
'ipn_secret' => env('COINPAYMENTS_IPN_SECRET'),
// URL for your IPN callbacks. If not set it will use the IPN URL in your Edit Settings page if you have one set.
'ipn_url' => env('COINPAYMENTS_IPN_URL'),
// The format of response to return, json or xml. (default: json)
'format' => env('COINPAYMENTS_API_FORMAT', 'json'),
// ALL logs all requests, ERROR logs only errors, and NONE never
'log_level' => Log::LEVEL_ERROR,
// Whether or not to have coinpayments automatically parse IPN's for you. If so please specify a PATH
'route' => [
'enabled' => env('COINPAYMENTS_IPN_ROUTE_ENABLED', false),
'path' => env('COINPAYMENTS_IPN_ROUTE_PATH', '/api/ipn'),
],
);
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
Kevupton\LarvelCoinpayments\Events\Deposit\DepositCompleted::class => [
App\Listeners\DoSomethingOnDepositListener::class, // your own class listener for when a deposit is created
],
];
namespace App\Listeners;
use Kevupton\LaravelCoinpayments\Events\Deposit\DepositComplete;
class DoSomethingOnDepositListener
{
/**
* Handler for the DepositComplete event.
* Here we can do anything with the completed deposit object.
*/
public function handle(DepositComplete $depositComplete)
{
var_dump($depositComplete->deposit->toArray());
}
}
try {
$ipn = \Coinpayments::validateIPNRequest($request);
// do soemthing with the completed IPN
} catch (\Exception $e) {
// transaction not completed.
}
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Kevupton\LaravelCoinpayments\Exceptions\IpnIncompleteException;
use Kevupton\LaravelCoinpayments\Models\Ipn;
use Kevupton\LaravelCoinpayments\Models\Transaction;
class CoinpaymentsController extends Controller
{
const ITEM_CURRENCY = 'BTC';
const ITEM_PRICE = 0.01;
/**
* Purchase items using coinpayments payment processor
*
* @param Request $request
* @return array
*/
public function purchaseItems (Request $request)
{
// validate that the request has the appropriate values
$this->validate($request, [
'currency' => ' that the request has the appropriate values
$this->validate($request, [
'currency' => 'PI side of coinpayments merchant
if ($ipn->isApi()) {
/*
* If it makes it into here then the payment is complete.
* So do whatever you want once the completed
*/
// do something here
// Payment::find($ipn->txn_id);
}
}
catch (IpnIncompleteException $e) {
$ipn = $e->getIpn();
/*
* Can do something here with the IPN model if desired.
*/
}
}
}
text
COINPAYMENTS_DB_PREFIX=cp_
COINPAYMENTS_MERCHANT_ID=your_unique_merchant_id
COINPAYMENTS_PUBLIC_KEY=generated_public_key
COINPAYMENTS_PRIVATE_KEY=generated_private_key
COINPAYMENTS_IPN_SECRET=your_custom_ipn_secret
COINPAYMENTS_IPN_URL=your_ipn_url
COINPAYMENTS_API_FORMAT=json
COINPAYMENTS_IPN_ROUTE_ENABLED=true
COINPAYMENTS_IPN_ROUTE_PATH=/api/ipn
shell
php artisan migrate
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.