WebSocket Integrations

React / React Native

The snippet below connects to channels and subscribes to a channel.

Installation

// For react-native
npm install pusher-js @react-native-community/netinfo

// For react
npm install pusher-js

Examples

import Pusher from 'pusher-js/react-native';
let pusher = new Pusher('1d9ffac87de599c61283', {cluster: 'ap2'});
let orderId = "TRANSAK_ORDER_ID"

//to subscribe
let channel = pusher.subscribe(orderId);

//receive updates of all the events
pusher.bind_global((eventId, orderData) => {
    console.log(`${eventId} ${orderData}`)
});

//receive updates of a specific event
// channel.bind(`ORDER_COMPLETED`, (orderData) => {
//     console.log(orderData)
// });

//to unsubscribe
//pusher.unsubscribe(orderId);

// sample order data

{ status: 'COMPLETED',
  id: '7467f962-0842-4095-ac9e-1689da6e1414',
  walletAddress: '0x3CAdbeB58CB5162439908edA08df0A305b016dA8',
  fiatCurrency: 'EUR',
  fiatAmount: 100,
  cryptoAmount: 0.4581929390176435,
  cryptocurrency: 'ETH',
  isBuyOrSell: 'BUY',
  transactionLink:
   'https://rinkeby.etherscan.io/tx/0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3',
  transactionHash:
   '0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3' 
}
import Pusher from 'pusher-js/react-native';
let pusher = new Pusher('1d9ffac87de599c61283', {cluster: 'ap2'});
let apiKey = "YOUR_TRANSAK_API_KEY"
let partnerOrderId = "YOUR_UNIQUE_ORDER_ID"
let channelName = `${apiKey}_${partnerOrderId}`

//to subscribe
let channel = pusher.subscribe(channelName);

//receive updates of all the events
pusher.bind_global((eventId, orderData) => {
    console.log(`${eventId} ${orderData}`)
});

//receive updates of a specific event
// channel.bind(`ORDER_COMPLETED`, (orderData) => {
//     console.log(orderData)
// });

//to unsubscribe
//pusher.unsubscribe(orderId);

// sample order data

{ status: 'COMPLETED',
  id: '7467f962-0842-4095-ac9e-1689da6e1414',
  walletAddress: '0x3CAdbeB58CB5162439908edA08df0A305b016dA8',
  fiatCurrency: 'EUR',
  fiatAmount: 100,
  cryptoAmount: 0.4581929390176435,
  cryptocurrency: 'ETH',
  isBuyOrSell: 'BUY',
  transactionLink:
   'https://rinkeby.etherscan.io/tx/0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3',
  transactionHash:
   '0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3' 
}
import Pusher from 'pusher-js/react-native';
import jwt from 'jsonwebtoken';

let pusher = new Pusher('1d9ffac87de599c61283', {cluster: 'ap2'});

let apiKey = 'YOUR_API_KEY';
let partnerApiSecret = 'YOUR_API_SECRET'
let channel = pusher.subscribe(apiKey);

let callback = function (encryptedOrderData) {
    if (encryptedOrderData && typeof encryptedOrderData === 'string') {
        try {
            let decryptedOrderData = jwt.verify(encryptedOrderData, partnerApiSecret);
            if (decryptedOrderData && decryptedOrderData.id) {
                console.log({orderData: decryptedOrderData})
            }
        } catch (e) {
            console.error(e)
        }
    }
};
//receive updates of all the orders
pusher.bind_global((orderId, encryptedOrderData) => {
    console.log(`Order update ${orderId}`)
    return callback(encryptedOrderData)
});

//receive updates of a specific order
// let user_order_id = "YOUR_USER_ORDER_ID"
// channel.bind(`${user_order_id}`, (encryptedOrderData) => {
//     return callback(encryptedOrderData)
// });

//to unsubscribe
//pusher.unsubscribe(apiKey);


// Sample Decrypted Payload Data

{ 
      "id":"9151faa1-e69b-4a36-b959-3c4f894afb68",
      "walletAddress":"0x86349020e9394b2BE1b1262531B0C3335fc32F20",
      "createdAt":"2020-02-17T01:55:05.095Z",
      "status":"AWAITING_PAYMENT_FROM_USER",
      "fiatCurrency":"INR",
      "userId":"65317131-cd95-419a-a50c-747d142f83e9",
      "cryptocurrency":"CDAI",
      "isBuyOrSell":"BUY",
      "fiatAmount":1110,
      "commissionDecimal":0.0075,
      "fromWalletAddress":"0x085ee67132ec4297b85ed5d1b4c65424d36fda7d",
      "walletLink":"https://rinkeby.etherscan.io/address/0x86349020e9394b2BE1b1262531B0C3335fc32F20#tokentxns",
      "amountPaid":0,
      "partnerOrderId":"2183721893",
      "partnerCustomerId":"2183721893",
      "redirectURL":"https://google.com",
      "conversionPrice":0.663847164368606,
      "cryptoAmount":731.34,
      "totalFee":5.52652764336864,
      "paymentOption":[],
      "autoExpiresAt":"2020-02-16T19:55:05-07:00",
      "referenceCode":226056
}

Node JS

The snippet below connects to channels and subscribes to a channel.

Installation

npm install pusher-js

Examples

const Pusher = require('pusher-js');
let pusher = new Pusher('1d9ffac87de599c61283', {cluster: 'ap2'});
let orderId = "TRANSAK_ORDER_ID"

//to subscribe
let channel = pusher.subscribe(orderId);

//receive updates of all the events
pusher.bind_global((eventId, orderData) => {
    console.log(`${eventId} ${orderData}`)
});

//receive updates of a specific event
// channel.bind(`ORDER_COMPLETED`, (orderData) => {
//     console.log(orderData)
// });

//to unsubscribe
//pusher.unsubscribe(orderId);

// sample order data

{ status: 'COMPLETED',
  id: '7467f962-0842-4095-ac9e-1689da6e1414',
  walletAddress: '0x3CAdbeB58CB5162439908edA08df0A305b016dA8',
  fiatCurrency: 'EUR',
  fiatAmount: 100,
  cryptoAmount: 0.4581929390176435,
  cryptocurrency: 'ETH',
  isBuyOrSell: 'BUY',
  transactionLink:
   'https://rinkeby.etherscan.io/tx/0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3',
  transactionHash:
   '0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3' 
}
const Pusher = require('pusher-js');
let pusher = new Pusher('1d9ffac87de599c61283', {cluster: 'ap2'});
let apiKey = "YOUR_TRANSAK_API_KEY"
let partnerOrderId = "YOUR_UNIQUE_ORDER_ID"
let channelName = `${apiKey}_${partnerOrderId}`

//to subscribe
let channel = pusher.subscribe(channelName);

//receive updates of all the events
pusher.bind_global((eventId, orderData) => {
    console.log(`${eventId} ${orderData}`)
});

//receive updates of a specific event
// channel.bind(`ORDER_COMPLETED`, (orderData) => {
//     console.log(orderData)
// });

//to unsubscribe
//pusher.unsubscribe(orderId);

// sample order data

{ status: 'COMPLETED',
  id: '7467f962-0842-4095-ac9e-1689da6e1414',
  walletAddress: '0x3CAdbeB58CB5162439908edA08df0A305b016dA8',
  fiatCurrency: 'EUR',
  fiatAmount: 100,
  cryptoAmount: 0.4581929390176435,
  cryptocurrency: 'ETH',
  isBuyOrSell: 'BUY',
  transactionLink:
   'https://rinkeby.etherscan.io/tx/0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3',
  transactionHash:
   '0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3' 
}
const Pusher = require('pusher-js');
const jwt = require('jsonwebtoken');

let pusher = new Pusher('1d9ffac87de599c61283', {cluster: 'ap2'});

let apiKey = 'YOUR_API_KEY';
let partnerApiSecret = 'YOUR_API_SECRET'
let channel = pusher.subscribe(apiKey);

let callback = function (encryptedOrderData) {
    if (encryptedOrderData && typeof encryptedOrderData === 'string') {
        try {
            let decryptedOrderData = jwt.verify(encryptedOrderData, partnerApiSecret);
            if (decryptedOrderData && decryptedOrderData.id) {
                console.log({orderData: decryptedOrderData})
            }
        } catch (e) {
            console.error(e)
        }
    }
};
//receive updates of all the orders
pusher.bind_global((orderId, encryptedOrderData) => {
    console.log(`Order update ${orderId}`)
    return callback(encryptedOrderData)
});

//receive updates of a specific order
// let user_order_id = "YOUR_USER_ORDER_ID"
// channel.bind(`${user_order_id}`, (encryptedOrderData) => {
//     return callback(encryptedOrderData)
// });

//to unsubscribe
//pusher.unsubscribe(apiKey);


// Sample Decrypted Payload Data

{ 
      "id":"9151faa1-e69b-4a36-b959-3c4f894afb68",
      "walletAddress":"0x86349020e9394b2BE1b1262531B0C3335fc32F20",
      "createdAt":"2020-02-17T01:55:05.095Z",
      "status":"AWAITING_PAYMENT_FROM_USER",
      "fiatCurrency":"INR",
      "userId":"65317131-cd95-419a-a50c-747d142f83e9",
      "cryptocurrency":"CDAI",
      "isBuyOrSell":"BUY",
      "fiatAmount":1110,
      "commissionDecimal":0.0075,
      "fromWalletAddress":"0x085ee67132ec4297b85ed5d1b4c65424d36fda7d",
      "walletLink":"https://rinkeby.etherscan.io/address/0x86349020e9394b2BE1b1262531B0C3335fc32F20#tokentxns",
      "amountPaid":0,
      "partnerOrderId":"2183721893",
      "partnerCustomerId":"2183721893",
      "redirectURL":"https://google.com",
      "conversionPrice":0.663847164368606,
      "cryptoAmount":731.34,
      "totalFee":5.52652764336864,
      "paymentOption":[],
      "autoExpiresAt":"2020-02-16T19:55:05-07:00",
      "referenceCode":226056
}

Javascript

The snippet below connects to channels and subscribes to a channel.

Installation

add https://js.pusher.com/6.0/pusher.min.js in your script tag in html.

Examples

<!DOCTYPE html>
<head>
  <title>Pusher Test</title>
  <script src="https://js.pusher.com/6.0/pusher.min.js"></script>
  <script>
    // Enable pusher logging - don't include this in production
    Pusher.logToConsole = true;

        let pusher = new Pusher('1d9ffac87de599c61283', {cluster: 'ap2'});
        let orderId = "TRANSAK_ORDER_ID"
        
        //to subscribe
        let channel = pusher.subscribe(orderId);
        
        //receive updates of all the events
        pusher.bind_global((eventId, orderData) => {
            console.log(`${eventId} ${orderData}`)
        });
        
        //receive updates of a specific event
        // channel.bind(`ORDER_COMPLETED`, (orderData) => {
        //     console.log(orderData)
        // });
        
        //to unsubscribe
        //pusher.unsubscribe(orderId);
  </script>
</head>
<body>
  <h1>Pusher Test</h1>
  <p>
    Try publishing an event to channel <code>my-channel</code>
    with event name <code>my-event</code>.
  </p>
</body>


// Sample order data

{ status: 'COMPLETED',
  id: '7467f962-0842-4095-ac9e-1689da6e1414',
  walletAddress: '0x3CAdbeB58CB5162439908edA08df0A305b016dA8',
  fiatCurrency: 'EUR',
  fiatAmount: 100,
  cryptoAmount: 0.4581929390176435,
  cryptocurrency: 'ETH',
  isBuyOrSell: 'BUY',
  transactionLink:
   'https://rinkeby.etherscan.io/tx/0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3',
  transactionHash:
   '0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3' 
}
<!DOCTYPE html>
<head>
  <title>Pusher Test</title>
  <script src="https://js.pusher.com/6.0/pusher.min.js"></script>
  <script>
    // Enable pusher logging - don't include this in production
    Pusher.logToConsole = true;

        let pusher = new Pusher('1d9ffac87de599c61283', {cluster: 'ap2'});
        let apiKey = "YOUR_TRANSAK_API_KEY"
        let partnerOrderId = "YOUR_UNIQUE_ORDER_ID"
        let channelName = `${apiKey}_${partnerOrderId}`
        
        //to subscribe
        let channel = pusher.subscribe(channelName);
        
        //receive updates of all the events
        pusher.bind_global((eventId, orderData) => {
            console.log(`${eventId} ${orderData}`)
        });
        
        //receive updates of a specific event
        // channel.bind(`ORDER_COMPLETED`, (orderData) => {
        //     console.log(orderData)
        // });
        
        //to unsubscribe
        //pusher.unsubscribe(orderId);
  </script>
</head>
<body>
  <h1>Pusher Test</h1>
  <p>
    Try publishing an event to channel <code>my-channel</code>
    with event name <code>my-event</code>.
  </p>
</body>



// sample order data

{ status: 'COMPLETED',
  id: '7467f962-0842-4095-ac9e-1689da6e1414',
  walletAddress: '0x3CAdbeB58CB5162439908edA08df0A305b016dA8',
  fiatCurrency: 'EUR',
  fiatAmount: 100,
  cryptoAmount: 0.4581929390176435,
  cryptocurrency: 'ETH',
  isBuyOrSell: 'BUY',
  transactionLink:
   'https://rinkeby.etherscan.io/tx/0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3',
  transactionHash:
   '0x2952a2449e2ee905a238bedce383a6f3ebfb26b1483b9e46218b376a9fdd05f3' 
}
<!DOCTYPE html>
<head>
  <title>Pusher Test</title>
  <script src="https://js.pusher.com/6.0/pusher.min.js"></script>
  <script>
    // Enable pusher logging - don't include this in production
    Pusher.logToConsole = true;

    var pusher = new Pusher('1d9ffac87de599c61283', {
      cluster: 'ap2'
    });

   let partnerApiKey = 'YOUR_API_KEY';
     let partnerApiSecret = 'YOUR_API_SECRET'
   let channel = pusher.subscribe(partnerApiKey);

   let callback = function (encryptedOrderData) {
     if (encryptedOrderData && typeof encryptedOrderData === 'string') {
        try {
            let decryptedOrderData = jwt.verify(encryptedOrderData, partnerApiSecret);
            if (decryptedOrderData && decryptedOrderData.id) {
                console.log({orderData: decryptedOrderData})
            }
        } catch (e) {
            console.error(e)
        }
     }
   };

        //receive updates of all the orders
        pusher.bind_global((orderId, encryptedOrderData) => {
            console.log(`Order update ${orderId}`)
            return callback(encryptedOrderData)
        });

        //receive updates of a specific order
        // let user_order_id = "YOUR_USER_ORDER_ID"
        // channel.bind(`${user_order_id}`, (encryptedOrderData) => {
        //     return callback(encryptedOrderData)
        // });
        
        //to unsubscribe
        //pusher.unsubscribe(partnerApiKey);
  </script>
</head>
<body>
  <h1>Pusher Test</h1>
  <p>
    Try publishing an event to channel <code>my-channel</code>
    with event name <code>my-event</code>.
  </p>
</body>


// Sample decrypted order data

{ 
      "id":"9151faa1-e69b-4a36-b959-3c4f894afb68",
      "walletAddress":"0x86349020e9394b2BE1b1262531B0C3335fc32F20",
      "createdAt":"2020-02-17T01:55:05.095Z",
      "status":"AWAITING_PAYMENT_FROM_USER",
      "fiatCurrency":"INR",
      "userId":"65317131-cd95-419a-a50c-747d142f83e9",
      "cryptocurrency":"CDAI",
      "isBuyOrSell":"BUY",
      "fiatAmount":1110,
      "commissionDecimal":0.0075,
      "fromWalletAddress":"0x085ee67132ec4297b85ed5d1b4c65424d36fda7d",
      "walletLink":"https://rinkeby.etherscan.io/address/0x86349020e9394b2BE1b1262531B0C3335fc32F20#tokentxns",
      "amountPaid":0,
      "partnerOrderId":"2183721893",
      "partnerCustomerId":"2183721893",
      "redirectURL":"https://google.com",
      "conversionPrice":0.663847164368606,
      "cryptoAmount":731.34,
      "totalFee":5.52652764336864,
      "paymentOption":[],
      "autoExpiresAt":"2020-02-16T19:55:05-07:00",
      "referenceCode":226056
}

Java (Android)

iOS

Flutter