NATS4 REST API Get Member Details

From TMM Wiki
Revision as of 21:33, 24 June 2019 by Tmm vincent (talk | contribs) (updated transactionid description to illustrate usage)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
NATS 4
Members Admin
The Members Admin
View Member Details
Add Member
MySQL Auth
Mod Authn DB
Multisite Access
Member Logging
Member Password Retrieval
OpenID Connect
Mod Auth OpenIDC
ID Numbers
SOAP API
API
API Best Practices
WSDL Cache
Add Affiliate
Add Member Note
Admin Get Adtools
Adtool Categories
Adtool Types
Affiliate Get Campaigns
Bulk Import Adtools
Caching
Decode Natscode
Expire Manual Member
Get Affiliate Campaigns
Get Affiliate Hit Data
Get Affiliate Loginids
Get Affiliate Nats Codes
Get Affiliate Payout
Get Affiliate Program Campaign List
Get_Affiliate_Program_Campaign_List
Get Member Details
Get Member Instant Upgrade String
Get Member Package Upgrade String
Get Member Token Rebuy String
Get Member Upsell String
Get Payment Data
Get Payvia Rule
Get Profit Loss Report
Ping
Record Member Login
Search Affiliate Info
Search Member Info
Send Email API Function
Set Affiliate Admin Settings
Set Affiliate Customs
Set Affiliate Defaults
Set Affiliate Information
Set Affiliate Settings
Set Member Details
Set Payment Status
Set Payvia Rule
REST API
API Overview
API Best Practices
REST API PATH UPDATES
Adtools
GET /adtools/admin
GET /adtools/categories
GET /adtools/types
POST /adtools/importdump
Affiliate
GET /affiliate/campaigns
GET /affiliate/hitdata
GET /affiliate/payout
GET /affiliate/searchinfo
POST /affiliate/addaffiliate
POST /affiliate/invoice
PATCH /affiliate/setadminsettings
PATCH /affiliate/setcustoms
PATCH /affiliate/setdefaults
PATCH /affiliate/setinformation
PATCH /affiliate/setpayviainfo
PATCH /affiliate/setsettings
PATCH /affiliate/status
Member
GET /member/authstring
GET /member/details
GET /member/searchinfo
GET /suggestedcanceloffers
PATCH /member/setdetails
PATCH /member/setexpiration
POST /member/addnote
POST /member/recordlogin
PUT /member/expiremanual
PATCH /member/forget
Option
GET /option/options
GET /option/rule
PATCH /option/rule
PATCH/option/text
POST /option/rule
Payments
GET /payments/getpayments
GET /payviarule
PATCH /payments/setstatus
PATCH /payviarule
Report
GET /profitlossreport
Get /transactionpayouts
GET /report/transaction
Service
GET /service/decodenatscode
GET /service/ping
POST /service/sendemail

GET member/details

Description

  • The member/details api resource is a feature in NATS4 that allows you to access a member's details.


Resource URL

  • http://domain/api/member/details
  • Replace domain with the nats domain

Request Method

  • GET

Response Format

  • JSON

Authentication

  • HTTP headers

Parameters

Paremeters can be sent as url encoded params.

There are two types of parameters for this function.

Filters

These are parameters used to specify which member you're looking for. This function will only return one member; use these filters to choose which one.

  • memberid
    • type: integer
    • optional
  • session
    • type: string
    • optional
  • memberidx (Ex: If a member joined under Epoch with subscription ID 12345, their memberidx would be EPOCH:12345)
    • type: string
    • optional
  • username
    • type: string
    • optional
  • siteid
    • type: integer
    • optional
  • transactionid (Ex: If a member joined under Segpay with transaction ID 67890, their transactionid would be SEGPAY:67890)
    • type: string
    • optional
  • email
    • type: string
    • optional
  • status
    • type: integer
    • optional
  • token_hash
    • type: string
    • optional
  • subscriptionid
    • type: string
    • optional

Options

These parameters allow you to specify what data you want to be returned. The member's main information will be returned by default; this specifies what you want in addition to that.

  • subscriptions -- return all subscriptions for the member
    • type: boolean
    • optional
  • transactions -- return all transactions for the member (implies subscriptions).
    • type: boolean
    • optional
  • full_info -- whether to also get the info from the member_info table (name, address, zip, country, etc)
    • type: boolean
    • optional
  • ident_details -- whether to also return all the identifier information (ie, instead of just returning identid 1234, also return what programid, siteid, tourid, biller, etc that is)
    • type: boolean
    • optional
  • surfer_actions -- whether to also return data about surfer actions for this member
    • type: boolean
    • optional
    • version added: 4.1.19.1
  • loginlogs -- whether to also return data about login history for this member
    • type: boolean
    • optional
    • version added: 4.1.19.1
  • notes -- whether to also return data about member notes for this member
    • type: boolean
    • optional
    • version added: 4.1.19.1
  • all_data -- same as passing notes, loginlogs, surfer_actions, full_info, subscriptions, transactions, and ident_details
    • type: boolean
    • optional
    • version added: 4.1.19.1
  • member_data -- automatically returns a restricted data set intended for exports you can share with members, you may wish to further redact the data before sharing it.
    • type: boolean
    • optional
    • version added: 4.1.19.1


Configurations

  • Starting with NATS version 4.1.11.1+ we have a config option in Configuration Admin > Misc section > "API_INCLUDE_BILLER_OPTION_INFO"
    • Which you will need to enable to add biller specific option info to get_member_details API function.

Example Request

GET

http://domain/api/member/details

  • Response:
{
    "memberid": "2",
    "identid": "6",
    "loginid": "6",
    "networkid": "0",
    "refurl_lookup_id": "2",
    "status": "1",
    "trial": "0",
    "joined": "1402603193",
    "expired": "0",
    "last_login": "0",
    "stamp": "1402603193",
    "siteid": "1",
    "username": "testakovsky2",
    "password": "abc123",
    "cryptpass": "1f2JYM/vKDxjk",
    "ip": "10.10.10.79",
    "email": "hello@toomuchmedia.com",
    "session": "805dcd81818e7593a909fb4c2f2dadba",
    "mailok": "1",
    "flat_price": "0",
    "first_login": "0",
    "third_party_partner_id": "0",
    "cascadeid": "2",
    "cascade_item_id": "2",
    "token": "0",
    "original_username": "testakovsky2",
    "renamed": "0",
    "marked": "0",
    "token_hash": "509f18ef8dd27d6a4fab5ececea7c097",
    "member_subscription_id": "2",
    "memberidx": "NETBILLING:111684925893",
    "billerid": "4",
    "statid": "8539a066a729f6",
    "cost": "0",
    "cost_charge": "0",
    "spent": "66600",
    "refunded": "0",
    "charges": "1",
    "next_rebill": "1460231993",
    "optionid": "1",
    "rebills": "0",
    "active": "1",
    "upgradeid": "",
    "expires": "1460231993",
    "nats_expires": "1460231993",
    "biller_expires": "0",
    "original_optionid": "1",
    "created_date": "1402603114",
    "loginid_assigned": "0",
    "identid_assigned": "0",
    "gateway_token": "111684925892",
    "passthrough1": "",
    "passthrough2": "",
    "passthrough3": "",
    "passthrough4": "",
    "passthrough5": "",
    "member_identid": "6",
    "member_loginid": "6",
    "firstname": "Testakovsky",
    "lastname": "Test",
    "address1": "666 666 St",
    "address2": "",
    "zip": "11111",
    "city": "Heck",
    "country": "US",
    "state": "NJ",
    "shipping_firstname": "",
    "shipping_lastname": "",
    "shipping_address1": "",
    "shipping_address2": "",
    "shipping_zip": "",
    "shipping_city": "",
    "shipping_country": "",
    "shipping_state": "",
    "phone": "",
    "xsell_success": "0",
    "xsell_message": "",
    "custom1": "Hello, this is a test",
    "custom2": "",
    "custom3": "",
    "custom4": "",
    "custom5": "",
    "last_modified": "0",
    "loginid_nice": "affiliate2",
    "long_ip": "168430159",
    "biller": "NETBILLING",
    "refurl": "No Referring URL",
    "subscriptions": {
        "2": {
            "member_subscription_id": "2",
            "memberid": "2",
            "memberidx": "NETBILLING:111684925893",
            "billerid": "4",
            "statid": "8539a066a729f6",
            "stamp": "1402603193",
            "joined": "1402603193",
            "expired": "0",
            "cost": 1250,
            "cost_charge": "0",
            "spent": "66600",
            "refunded": "0",
            "charges": "1",
            "next_rebill": "1460231993",
            "optionid": "1",
            "rebills": "0",
            "active": "1",
            "upgradeid": "",
            "expires": "1460231993",
            "nats_expires": "1460231993",
            "biller_expires": "0",
            "original_optionid": "1",
            "created_date": "1402603114",
            "identid": "6",
            "loginid": "6",
            "loginid_assigned": "0",
            "identid_assigned": "0",
            "gateway_token": "111684925892",
            "passthrough1": "",
            "passthrough2": "",
            "passthrough3": "",
            "passthrough4": "",
            "passthrough5": "",
            "biller": "NETBILLING"
        }
    }
}
  • Response when passing member_data:
{
   "memberid": "92",
   "identid": "8",
   "refurl_lookup_id": "31",
   "status": "0",
   "trial": "0",
   "joined": "0",
   "expired": "0",
   "last_login": "0",
   "stamp": "1525877790",
   "siteid": "1",
   "username": "davethre7",
   "password": "safasdfasdfasdf",
   "cryptpass": "dedVIQC7AVW/A",
   "ip": "192.168.1.65",
   "email": "asdf@dddddd.com",
   "session": "578e34cb694928e4b8a0b210700c14b7",
   "mailok": "1",
   "flat_price": "0",
   "first_login": "0",
   "third_party_partner_id": "0",
   "cascadeid": "4",
   "cascade_item_id": "8",
   "token": "0",
   "original_username": "davethre7",
   "renamed": "0",
   "marked": "0",
   "token_hash": "8fe21bb7617b7a380227ccdfcf6d1f6b",
   "member_subscription_id": "266",
   "memberidx": "",
   "billerid": "0",
   "statid": "05af30c1ed0084",
   "cost": "0",
   "cost_charge": "0",
   "spent": "0",
   "refunded": "0",
   "charges": "0",
   "next_rebill": "0",
   "optionid": "1",
   "rebills": "0",
   "active": "0",
   "upgradeid": "",
   "expires": "0",
   "nats_expires": "0",
   "biller_expires": "0",
   "original_optionid": "1",
   "created_date": "1525877790",
   "firstname": "sadfasdf",
   "lastname": "asdfasdf",
   "address1": "sfsdfqwrq",
   "address2": "werqwerq",
   "zip": "qw",
   "city": "qwerqwer",
   "country": "TJ",
   "state": "qwerqw",
   "shipping_firstname": "",
   "shipping_lastname": "",
   "shipping_address1": "",
   "shipping_address2": "",
   "shipping_zip": "",
   "shipping_city": "",
   "shipping_country": "",
   "shipping_state": "",
   "phone": "",
   "xsell_success": "0",
   "xsell_message": "",
   "custom1": "",
   "custom2": "",
   "custom3": "",
   "custom4": "",
   "custom5": "",
   "last_modified": "0",
   "custom6": "",
   "custom7": "",
   "custom8": "",
   "custom9": "",
   "custom10": "",
   "ident_details":    {
      "programid":       {
         "programid": "2",
         "program": "sss",
         "type": "0",
         "name": "sssssssssss",
         "deleted": "0"
      },
      "siteid":       {
         "siteid": "1",
         "site": "site1",
         "deleted": "0",
         "name": "site 1"
      },
      "tourid":       {
         "tourid": "1",
         "tour": "MAIN",
         "name": "Default Tour",
         "url": "http://unats.daverod.com",
         "description": ""
      },
      "optionid": []
   },
   "long_ip": "c0a80141",
   "biller": false,
   "refurl": "No Referring URL",
   "subscriptions": {"266":    {
      "member_subscription_id": "266",
      "memberid": "92",
      "memberidx": "",
      "billerid": "0",
      "statid": "05af30c1ed0084",
      "stamp": "1525877790",
      "joined": "0",
      "expired": "0",
      "cost": "0",
      "cost_charge": "0",
      "spent": "0",
      "refunded": "0",
      "charges": "0",
      "next_rebill": "0",
      "optionid": "1",
      "rebills": "0",
      "active": "0",
      "upgradeid": "",
      "expires": "0",
      "nats_expires": "0",
      "biller_expires": "0",
      "original_optionid": "1",
      "created_date": "1525877790",
      "gateway_token": "",
      "passthrough1": "",
      "passthrough2": "",
      "passthrough3": "",
      "passthrough4": "",
      "passthrough5": "",
      "forced_optionid": "0",
      "defaulted_optionid": "0",
      "biller": false
   }},
   "surfer_action":    [
      {
         "surfer_action_id": "160",
         "identid": "1",
         "session": "578e34cb694928e4b8a0b210700c14b7",
         "time": "1499868814",
         "type": "9",
         "extra1": "2",
         "extra2": "2",
         "nice": "Cascade: default, Biller: EPOCH (id: 2), Step Number: 2"
      },
      {
         "surfer_action_id": "1136",
         "identid": "8",
         "session": "578e34cb694928e4b8a0b210700c14b7",
         "time": "1525890824",
         "type": "14",
         "extra1": "7",
         "extra2": "1",
         "nice": "Biller CBILLING (id: 7) returned: NATS Decline"
      }
   ],
   "note": [   {
      "member_note_id": "60",
      "memberid": "92",
      "stamp": "1526047880",
      "note": "note text"
   }],
   "loginlog": [   {
      "member_loginlog_id": "1",
      "memberid": "92",
      "log_ip": "c0a81419",
      "log_time": "1526048007",
      "description": "test login"
   }]
}

Example Code

PHP

<?php
$curl = curl_init();

$data = array(
    'session' => '805dcd81818e7593a909fb4c2f2dadba',
    'username' => 'testakovsky2',
    'full_info' => true,
    'subscriptions' => true
);

$data_string = http_build_query($data);
$url = 'http://domain/api/member/details?'.$data_string;

$headers = array(
    'api-key: 44b5498dbcb481a0d00b404c0169af62',
    'api-username: tmm1phrvezsbu'
);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, $url);

$resp = curl_exec($curl);
//dumps an associative array representation of the json
var_dump(json_decode($resp, true));
// Close request to clear up some resources
curl_close($curl);
?>

Python

  • This example requires pip and the request library which can be installed via pip by: 'pip install requests'
import requests

url = 'http://domain/api/member/details'

params = {
        'username': 'testakovsky2',
        'session': '805dcd81818e7593a909fb4c2f2dadba',
        'full_info': 'true',
        'subscriptions': 'true'
}

headers = {
     'api-key': '44b5498dbcb481a0d00b404c0169af62',
     'api-username': 'tmm1phrvezsbu'
}


res = requests.get(url, params=params, headers=headers)

print res.json()

node.js

  • This example requires npm and the request module which can be installed via npm by: 'npm install request'
var request = require('request');

var options = {
    url: 'http://domain/api/member/details',
    method: 'GET',
    qs: {
        'username': 'testakovsky2',
        'session': '805dcd81818e7593a909fb4c2f2dadba',
        'full_info': 'true',
        'subscriptions': 'true'
    },
    json: true,
    headers: {
        'api-key': '44b5498dbcb481a0d00b404c0169af62',
        'api-username': 'tmm1phrvezsbu'
    }
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
    else{
        console.log(body);
    }

}

request(options, callback);

Curl

curl -X GET 'http://domain/api/member/details?session=805dcd81818e7593a909fb4c2f2dadba&username=testakovsky2&full_info=true&subscriptions=true"