Difference between revisions of "REST API examples"

From aMember Pro Documentation
Jump to: navigation, search
Line 19: Line 19:
 
curl_setopt($ch, CURLOPT_URL, $url);
 
curl_setopt($ch, CURLOPT_URL, $url);
 
curl_setopt($ch, CURLOPT_POST, true);
 
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
+
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));
 +
curl_setopt($c, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
  
 
//execute post
 
//execute post
Line 36: Line 37:
  
 
$vars = array(
 
$vars = array(
     '_key'     => 'SECRETKEY',
+
     '_key' => 'SECRETKEY',
     ///// Invoice Record;
+
     // Invoice Record
     'user_id'   => 34,
+
     'user_id' => 1,
 
     'paysys_id' => 'offline',
 
     'paysys_id' => 'offline',
     'currency' => 'USD',
+
     'currency' => 'USD',
 
     'first_subtotal' => '22.00',
 
     'first_subtotal' => '22.00',
     'first_discount'   => '0.00',
+
     'first_discount' => '0.00',
     'first_tax'     => '0.00',
+
     'first_tax' => '0.00',
     'first_shipping'   => '0.00',
+
     'first_shipping' => '0.00',
     'first_total'       => '22.00',
+
     'first_total' => '22.00',
     'first_period'     => '1m',
+
     'first_period' => '1m',
     'rebill_times'     => 99999, /// means forever.
+
     'rebill_times' => 99999, // means until cancel
 
     'second_subtotal' => '22.00',
 
     'second_subtotal' => '22.00',
     'second_discount'   => '0.00',
+
     'second_discount' => '0.00',
     'second_tax'     => '0.00',
+
     'second_tax' => '0.00',
     'second_shipping'   => '0.00',
+
     'second_shipping' => '0.00',
     'second_total'       => '22.00',
+
     'second_total' => '22.00',
     'second_period'     => '1m',
+
     'second_period' => '1m',
     'is_confirmed'     => 1, // Must be 1
+
     'is_confirmed' => 1, // Must be 1
     'status'           => 1, // 1 -piad 0 - pending check Invoice model.
+
     'status' => 1, // 1 - piad 0 - pending check Invoice model
 
+
    'nested' => array(
//// InvoiceItem record
+
        'invoice-items' => array(
 
+
            // InvoiceItem record
    'nested[invoice-items][0][item_id]' => 2, // - product_id here;
+
            array(
    'nested[invoice-items][0][item_type]' => 'product',
+
                'item_id' => 1, // product_id here;
    'nested[invoice-items][0][item_title]' => 'Archive',.
+
                'item_type' => 'product',
    'nested[invoice-items][0][item_description]' => 'Description of item' ,
+
                'item_title' => 'Archive',
    'nested[invoice-items][0][qty]' => 1,
+
                'item_description' => 'Description of item',
    'nested[invoice-items][0][first_discount]'   => '0.00',
+
                'qty' => 1,
    'nested[invoice-items][0][first_price]'   => '22.00',
+
                'first_discount' => '0.00',
    'nested[invoice-items][0][first_tax]'     => '0.00',
+
                'first_price' => '22.00',
    'nested[invoice-items][0][first_shipping]'   => '0.00',
+
                'first_tax' => '0.00',
    'nested[invoice-items][0][first_total]'       => '22.00',
+
                'first_shipping' => '0.00',
    'nested[invoice-items][0][first_period]'     => '1m',
+
                'first_total' => '22.00',
    'nested[invoice-items][0][rebill_times]'     => 99999,
+
                'first_period' => '1m',
    'nested[invoice-items][0][second_discount]'   => '0.00',
+
                'rebill_times' => 99999,
    'nested[invoice-items][0][second_tax]'     => '0.00',
+
                'second_discount' => '0.00',
    'nested[invoice-items][0][second_shipping]'   => '0.00',
+
                'second_tax' => '0.00',
    'nested[invoice-items][0][second_total]'       => '22.00',
+
                'second_shipping' => '0.00',
    'nested[invoice-items][0][second_price]'       => '22.00',
+
                'second_total' => '22.00',
    'nested[invoice-items][0][second_period]'     => '1m',
+
                'second_price' => '22.00',
    'nested[invoice-items][0][currency]' => 'USD',
+
                'second_period' => '1m',
    'nested[invoice-items][0][billing_plan_id]' => 2, // Billing plan within  product, check am_billing_plan table.
+
                'currency' => 'USD',
 
+
                'billing_plan_id' => 1 // Billing plan within  product, check am_billing_plan table.
    // InvoicePayment record
+
            )
 
+
        ),
    'nested[invoice-payments][0][user_id]' => 34,
+
        'invoice-payments' => array(
    'nested[invoice-payments][0][paysys_id]' => 'offline',
+
            // InvoicePayment record
    'nested[invoice-payments][0][receipt_id]' => 'test-receipt',
+
            array(
    'nested[invoice-payments][0][transaction_id]' => 'test-transaction',
+
                'user_id' => 1,
    'nested[invoice-payments][0][currency]' => 'USD',
+
                'paysys_id' => 'offline',
    'nested[invoice-payments][0][amount]' => '22.00',
+
                'receipt_id' => 'test-receipt',
 
+
                'transaction_id' => 'test-transaction',
    // Access record
+
                'currency' => 'USD',
    'nested[access][0][user_id]' => 34,
+
                'amount' => '22.00'
    'nested[access][0][product_id]' => 2,
+
            )
    'nested[access][0][transaction_id]' => "test-transaction",
+
        ),
    'nested[access][0][begin_date]' => '2012-01-01',
+
        'access' => array(
    'nested[access][0][expire_date]' => '2013-01-01'
+
            // Access record
 
+
            array(
);
+
                'user_id' => 1,
 +
                'product_id' => 1,
 +
                'transaction_id' => "test-transaction",
 +
                'begin_date' => '2012-01-01',
 +
                'expire_date' => '2013-01-01'
 +
            )
 +
        )
 +
    ));
  
 
//open connection
 
//open connection
Line 102: Line 110:
  
 
//set the url, number of POST vars, POST data
 
//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
+
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, true);
+
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_POSTFIELDS, $vars);
+
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($vars));
 
+
curl_setopt($c, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
 
//execute post
 
//execute post
 
$result = curl_exec($ch);
 
$result = curl_exec($ch);

Revision as of 06:29, 30 January 2015

  • Add user to aMember via API:
<?php
$url = 'http://YOURDOMAIN.COM/amember/api/users';
 
$fields = array(
    '_key' => 'SECRETKEY',
    '_format' => 'xml',
    'login' => 'USERNAME',
    'pass' => 'PASSWORD',
    'email' => 'EMAIL',
    'name_f' => 'FIRST NAME',
    'name_l' => 'LAST NAME',
);
//open connection
$ch = curl_init();
 
//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));
curl_setopt($c, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
 
//execute post
$result = curl_exec($ch);
 
//close connection
curl_close($ch);
  • Add Invoice, Payment, Access
<?php
$url = 'http://YOURDOMAIN.COM/amember/api/invoices';
 
$vars = array(
    '_key' => 'SECRETKEY',
    // Invoice Record
    'user_id' => 1,
    'paysys_id' => 'offline',
    'currency' => 'USD',
    'first_subtotal' => '22.00',
    'first_discount' => '0.00',
    'first_tax' => '0.00',
    'first_shipping' => '0.00',
    'first_total' => '22.00',
    'first_period' => '1m',
    'rebill_times' => 99999, // means until cancel
    'second_subtotal' => '22.00',
    'second_discount' => '0.00',
    'second_tax' => '0.00',
    'second_shipping' => '0.00',
    'second_total' => '22.00',
    'second_period' => '1m',
    'is_confirmed' => 1, // Must be 1
    'status' => 1, // 1 - piad 0 - pending check Invoice model
    'nested' => array(
        'invoice-items' => array(
            // InvoiceItem record
            array(
                'item_id' => 1, // product_id here;
                'item_type' => 'product',
                'item_title' => 'Archive',
                'item_description' => 'Description of item',
                'qty' => 1,
                'first_discount' => '0.00',
                'first_price' => '22.00',
                'first_tax' => '0.00',
                'first_shipping' => '0.00',
                'first_total' => '22.00',
                'first_period' => '1m',
                'rebill_times' => 99999,
                'second_discount' => '0.00',
                'second_tax' => '0.00',
                'second_shipping' => '0.00',
                'second_total' => '22.00',
                'second_price' => '22.00',
                'second_period' => '1m',
                'currency' => 'USD',
                'billing_plan_id' => 1 // Billing plan within  product, check am_billing_plan table.
            )
        ),
        'invoice-payments' => array(
            // InvoicePayment record
            array(
                'user_id' => 1,
                'paysys_id' => 'offline',
                'receipt_id' => 'test-receipt',
                'transaction_id' => 'test-transaction',
                'currency' => 'USD',
                'amount' => '22.00'
            )
        ),
        'access' => array(
            // Access record
            array(
                'user_id' => 1,
                'product_id' => 1,
                'transaction_id' => "test-transaction",
                'begin_date' => '2012-01-01',
                'expire_date' => '2013-01-01'
            )
        )
    ));
 
//open connection
$ch = curl_init();
 
//set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($vars));
curl_setopt($c, CURLOPT_HTTPHEADER, array("Content-type: multipart/form-data"));
//execute post
$result = curl_exec($ch);
 
//close connection
curl_close($ch);