Comment on page

Web SDK

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:
  1. 1.
    An approved Rocketfuel Merchant Account
  2. 2.
    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
git clone https://bitbucket.org/rocketfuelblockchain/rocketfuel-php-sdk.git
cd rocketfuel-php-sdk
composer install
For php integration without composer, follow

Usage Examples

  1. 1.
    Get UUID for triggering iFrame - (*UUID is a Unique User Identifier).
<?php
use RKFL\Api\Client\Options;
use RKFL\Api\Client\Rocketfuel;
require_once <PATH_TO_VENDOR> . '/autoload.php';
$options = new Options(
[
'environment' => 'sandbox',
'merchant_id' => 'MERCHANT_ID',
'password' => 'PASSWORD',
'email' => 'EMAIL',
'merchant_public_key' => "PUBLIC_KEY"
]
);
$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
<?php
use RKFL\Api\Client\Options;
use RKFL\Api\Client\Rocketfuel;
require_once <PATH_TO_VENDOR> . '/autoload.php';
$options = new Options(
[
'environment' => 'sandbox',
'merchant_id' => 'MERCHANT_ID',
'password' => 'PASSWORD',
'email' => 'EMAIL',
'merchant_public_key' => "PUBLIC_KEY"
]
);
$rocketfuel = new RocketFuel($options);
$status= $rocketfuel->helpers()->verifyWebhook($data, $signature);
3. Manually Cancel a Subscription
<?php
use RKFL\Api\Client\Options;
use RKFL\Api\Client\Rocketfuel;
require_once <PATH_TO_VENDOR> . '/autoload.php';
$options = new Options(
[
'environment' => 'sandbox',
'merchant_id' => 'MERCHANT_ID',
'password' => 'PASSWORD',
'email' => 'EMAIL',
'merchant_public_key' => "PUBLIC_KEY"
]
);
$rocketfuel = new RocketFuel($options);
$subscriptionId = '123_sub';
$status= $rocketfuel->subscription()->cancel($subscriptionId);
4. Manually Debit a Subscription
<?php
use RKFL\Api\Client\Options;
use RKFL\Api\Client\Rocketfuel;
require_once <PATH_TO_VENDOR> . '/autoload.php';
$options = new Options(
[
'environment' => 'sandbox',
'merchant_id' => 'MERCHANT_ID',
'password' => 'PASSWORD',
'email' => 'EMAIL',
'merchant_public_key' => "PUBLIC_KEY"
]
);
$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.
<?php
use RKFL\Api\Client\Options;
use RKFL\Api\Client\RocketFuel;
$options = new Options(
[
'environment' => 'env',
'merchant_id' => 'MERCHANT_ID',
'password' => 'PASSWORD',
'email' => 'EMAIL',
'merchant_public_key' => "PUBLIC_KEY"
]
);
$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
git clone [email protected]:rocketfuelblockchain/rocketfuel-php-client.git
Step 2: Configure the client and access its methods
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
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 :
    • uuid
    • callback function
    • environment
    • Token
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.
function startPayment(){
rkfl.initPayment();
}
  • Callback payload
// 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"
}

SSO Login

Create merchant Auth using the PUBLIC_KEY

### 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");
}

RKFL Token usage

  • Autosignup
    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
    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.rocketfuelblockchain.com 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.rocketfuelblockchain.com/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