BACKEND
PHP SDK - How to Use Rocketfuel with PHP SDK
This is a technical guide for developers and it requires programming experience to follow through the guide.
Prerequisite:
An approved Rocketfuel Merchant Account
Composer installed on the server
How to Install PHP SDK on your PHP app
There are two ways to install PHP SDK
a. Installation via composer
composer require rkfl/rocketfuel-php-sdk
b. Manual installation
Copy git clone https://bitbucket.org/rocketfuelblockchain/rocketfuel-php-sdk.git
cd rocketfuel-php-sdk
composer install
For php integration without composer, follow
Usage Examples
Get UUID for triggering iFrame - (*UUID is a Unique User Identifier).
Copy <?php
use RKFL\Api\Client\Options;
use RKFL\Api\Client\Rocketfuel;
require_once <PATH_TO_VENDOR> . '/autoload.php';
$options = new Options(
[
'environment' => 'sandbox', //or prod
'merchant_id' => 'MERCHANT_ID',
'merchant_public_key' => "PUBLIC_KEY",
'client_id'=>"CLIENT_ID",
'client_secret'=>"CLIENT_SECRET",
]
);
$rocketfuel = new RocketFuel($options);
$payload = [
'amount' => '100',
'cart' => [
[
'id' => '1',
'name' => 'test',
'price' => '100',
'quantity' => '1'
]
],
'currency' => 'USD',
'order' => '001'
];
$response = $rocketfuel->service()->getUUID($payload);
2. Verify callback from RocketFuel
Copy <?php
use RKFL\Api\Client\Options;
use RKFL\Api\Client\Rocketfuel;
require_once <PATH_TO_VENDOR> . '/autoload.php';
$options = new Options(
[
'environment' => 'sandbox', //or prod
'merchant_id' => 'MERCHANT_ID',
'merchant_public_key' => "PUBLIC_KEY",
'client_id'=>"CLIENT_ID",
'client_secret'=>"CLIENT_SECRET",
]
);
$rocketfuel = new RocketFuel($options);
$status= $rocketfuel->helpers()->verifyWebhook($data, $signature);
3. Manually Cancel a Subscription
Copy <?php
use RKFL\Api\Client\Options;
use RKFL\Api\Client\Rocketfuel;
require_once <PATH_TO_VENDOR> . '/autoload.php';
$options = new Options(
[
'environment' => 'sandbox', //or prod
'merchant_id' => 'MERCHANT_ID',
'merchant_public_key' => "PUBLIC_KEY",
'client_id'=>"CLIENT_ID",
'client_secret'=>"CLIENT_SECRET",
]
);
$rocketfuel = new RocketFuel($options);
$subscriptionId = '123_sub';
$status= $rocketfuel->subscription()->cancel($subscriptionId);
4. Manually Debit a Subscription
Copy <?php
use RKFL\Api\Client\Options;
use RKFL\Api\Client\Rocketfuel;
require_once <PATH_TO_VENDOR> . '/autoload.php';
$options = new Options(
[
'environment' => 'sandbox', //or prod
'merchant_id' => 'MERCHANT_ID',
'merchant_public_key' => "PUBLIC_KEY",
'client_id'=>"CLIENT_ID",
'client_secret'=>"CLIENT_SECRET",
]
);
$rocketfuel = new RocketFuel($options);
$orderId= '123';
$subscriptionData = [
...,
[
subscriptionId=>'123_sub',
amount=>1,
currency=>'USD'
],
...
];
$status= $rocketfuel->subscription()->debit($orderId, $subscriptionData);
How to configure SDK
Use this code snippet for setting it up.
Copy <?php
use RKFL\Api\Client\Options;
use RKFL\Api\Client\RocketFuel;
$options = new Options(
[
'environment' => 'sandbox', //or prod
'merchant_id' => 'MERCHANT_ID',
'merchant_public_key' => "PUBLIC_KEY",
'client_id'=>"CLIENT_ID",
'client_secret'=>"CLIENT_SECRET",
]
);
$rocketfuel = new RocketFuel($options);
MERCHANT_ID
,PASSWORD
,EMAIL
,PUBLIC_KEY
are merchant details. See below to retrieve these details
PHP SDK WITHOUT COMPOSER
To integrate with PHP without composer, you will need to use this .
Step 1: Clone repo into project
Copy git clone [email protected] :rocketfuelblockchain/rocketfuel-php-client.git
Step 2: Configure the client and access its methods
Copy require_once(PATH_TO_RKFL.'../src/RKFL_CLIENT.php');
//configure Options
$options = array(
'environment'=>'sandbox', //sandbox -- prod,
'merchantId'=>'MERCHANT_ID',
'secret'=>'CLIENTSECRET',
'clientId'=>'CLIENTID'
);
$rkfl = new \RKFL\Client\RKFL_CLIENT($options);
$payload = array(
"amount" => "100",
"cart" => array(
array(
"name" => "Test",
"id" => "200",
"price" => 100,
"quantity" => "1"
)
),
"merchant_id" => MERCHANT_ID,
"currency" => "USD",
"order" => "20",
"redirectUrl" => ""
);
$rkfl->rkflgenerateUUID($payload);
Using webhook
For more information, visit webhook
Copy require_once(PATH_TO_RKFL.'../src/WEBHOOK_CLASS.php');
use RKFL\Client\WEBHOOK_CLASS as rkflWebhook
/**
* $_REQUEST wont work because the webhook is application/json format and not formdata format
*/
$payload = file_get_contents('php://input'); //use for receiving payload from RKFL SERVER
$payload = json_decode($payload);
$result = rkflWebhook::verify_callback($payload->data->data, $payload->signature);
if ($result) {
echo "verified \n";
} else {
echo 'not verified';
return;
}
rkflWebhook::validate_payment($payload->data);
FRONTEND
RKFL JS CDN and Implementation Add the script from CDN to the Merchant site.
Once we get the response with the UUID from the backend. We will initialise an object of the above included script. We pass the following :
Copy const uuidInfo = JSON.parse(result);
if(uuidInfo.error !== undefined){
alert("Order placement failed");
return false;
}
uuid = uuidInfo.uuid;
rkfl = new RocketFuel({
uuid,
callback: callBackFunc,
environment: "<%= developmentEnv %>" // prod, preprod
});
After initialising the object, start the payment by calling the initPayment method of the above script.
Copy function startPayment(){
rkfl.initPayment();
}
Copy // In case of Bank/Exchange payment
{
paymentMode: 'Bank/Exchange',
txn_id:
status:
meta:
},
Sample response:
{
paymentMode: 'Bank/Exchange',
txn_id: "7df55d22-fa5e-4ca2-9af4-a39c95f18b3a"
status: 0
meta: {offerId: "1630402767550"}
},
// In case of Wallet payment
{
paymentMode: 'Wallet',
status:
recievedAmount:
currency:
},
Sample response:
{
paymentMode: 'Wallet',
status:"completed",
recievedAmount:10.00,
currency:"ETH"
}
Copy ### JS Code snippet
var merchantAuth = function(merchantId) {
var buffer = Buffer.from(merchantId);
var encrypted = crypto.publicEncrypt(process.env.PUBLIC_KEY, buffer);
return encrypted.toString("base64");
}
Autosignup
Copy const payload = {
firstName: firstName,
lastName, lastName,
email: email,
merchantAuth: "<%= merchantAuth %>",
}
rkfl = new RocketFuel({ environment: "<%= developmentEnv %>", });
rkfl.rkflAutoSignUp(payload, environment = "<%= developmentEnv %>").then((res) => {
// save this rkflToken for reference in the DB
// It is unique to each customer
res.result.rkflToken;
})})
Existing RKFL Token
Copy rkfl = new RocketFuel({
token, // rkfltoken
uuid,
callback: callBackFunc,
environment: "<%= developmentEnv %>" // prod, preprod
})
You can refer to the REFERENCE_LINK for demonstration.
How To Retrieve Merchant Details
The Email and Password refer to the email/password you use in signing into your merchant portal on https://merchant.rocketfuel.inc or equivalent.
The environment refers to the type of details you are using. You should choose production for real transactions and select sandbox when you are testing.
To retrieve Public Key, visit https://Merchant.rocketfuel.inc/settings and copy the string highlighted in the screenshot below.
You can also retrieve Merchant Id from the same page. Simply scroll up on the settings page and copy from the section highlighted below
Last updated 2 months ago