PHP Classes

File: examples/arb/ARBCreateSubscriptionRequestFromProfile.php

Recommend this page to a friend!
  Classes of John Conde   PHP Authorize.net Integration with JSON API   examples/arb/ARBCreateSubscriptionRequestFromProfile.php   Download  
File: examples/arb/ARBCreateSubscriptionRequestFromProfile.php
Role: Example script
Content type: text/plain
Description: Example script
Class: PHP Authorize.net Integration with JSON API
Process online payments with Authorize.net API
Author: By
Last change: Removed style="text/css" from examples
Date: 1 year ago
Size: 5,080 bytes
 

Contents

Class file image Download
<?php

/*
 * This file is part of the AuthnetJSON package.
 *
 * (c) John Conde <stymiee@gmail.com>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/*************************************************************************************************

This request enables you to create a recurring billing subscription from an existing customer profile. NOTE: The
customer payment profile first and last name fields must be populated, these are required for a subscription.
For subscriptions with a monthly interval, whose payments begin on the 31st of a month, payments for months with
fewer than 31 days occur on the last day of the month.

SAMPLE REQUEST
--------------------------------------------------------------------------------------------------
{
    "ARBCreateSubscriptionRequest": {
        "merchantAuthentication": {
            "name": "",
            "transactionKey": ""
        },
        "refId": "123456",
        "subscription": {
            "name": "Sample subscription",
            "paymentSchedule": {
                "interval": {
                    "length": "1",
                    "unit": "months"
                },
                "startDate": "2020-08-30",
                "totalOccurrences": "12",
                "trialOccurrences": "1"
            },
            "amount": "10.29",
            "trialAmount": "0.00",
            "profile": {
                "customerProfileId": "39931060",
                "customerPaymentProfileId": "36223863",
                "customerAddressId": "37726371"
            }
        }
    }
}

SAMPLE RESPONSE
--------------------------------------------------------------------------------------------------
{
    "subscriptionId": "158383",
    profile": {
        "customerProfileId": "39931060",
        "customerPaymentProfileId": "36223863",
        "customerAddressId": "37726371"
    },
    "refId": "123456",
    "messages": {
        "resultCode": "Ok",
        "message": [
            {
                "code": "I00001",
                "text": "Successful."
            }
        ]
    }
}

*************************************************************************************************/

namespace Authnetjson;

use
Exception;

require
'../../config.inc.php';

try {
   
$request = AuthnetApiFactory::getJsonApiHandler(
       
AUTHNET_LOGIN,
       
AUTHNET_TRANSKEY,
       
AuthnetApiFactory::USE_DEVELOPMENT_SERVER
   
);
   
$response = $request->ARBCreateSubscriptionRequest([
       
'refId' => 'Sample',
       
'subscription' => [
           
'name' => 'Sample subscription',
           
'paymentSchedule' => [
               
'interval' => [
                   
'length' => '1',
                   
'unit' => 'months'
               
],
               
'startDate' => '2020-07-15',
               
'totalOccurrences' => AuthnetJson::BOUNDLESS_OCCURRENCES,
               
'trialOccurrences' => '1'
           
],
           
'amount' => '10.29',
           
'trialAmount' => '0.00',
           
'profile' => [
               
'customerProfileId' => '1512256927',
               
'customerPaymentProfileId' => '1512285006',
            ]
        ]
    ]);
} catch (
Exception $e) {
    echo
$e;
    exit;
}
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <title>ARB :: Create Subscription from Customer Profile</title>
    <style>
        table { border: 1px solid #cccccc; margin: auto; border-collapse: collapse; max-width: 90%; }
        table td { padding: 3px 5px; vertical-align: top; border-top: 1px solid #cccccc; }
        pre { white-space: pre-wrap; }
        table th { background: #e5e5e5; color: #666666; }
        h1, h2 { text-align: center; }
    </style>
</head>
<body>
    <h1>
        ARB :: Create Subscription from Customer Profile
    </h1>
    <h2>
        Results
    </h2>
    <table>
        <tr>
            <th>Response</th>
            <td><?= $response->messages->resultCode ?></td>
        </tr>
        <tr>
            <th>Successful?</th>
            <td><?= $response->isSuccessful() ? 'yes' : 'no' ?></td>
        </tr>
        <tr>
            <th>Error?</th>
            <td><?= $response->isError() ? 'yes' : 'no' ?></td>
        </tr>
        <tr>
            <th>Code</th>
            <td><?= $response->messages->message[0]->code ?></td>
        </tr>
        <tr>
            <th>Message</th>
            <td><?= $response->messages->message[0]->text ?></td>
        </tr>
        <tr>
            <th>Subscription ID</th>
            <td><?= $response->subscriptionId ?></td>
        </tr>
        <tr>
            <th>Profile</th>
            <td>
                Customer Profile Id: <?= $response->profile->customerProfileId ?><br>
                Customer PaymentProfile Id: <?= $response->profile->customerPaymentProfileId ?><br>
                Customer Address Id: <?= $response->profile->customerAddressId ?><br>
            </td>
        </tr>
    </table>
    <h2>
        Raw Input/Output
    </h2>
<?= $request, $response ?>
</body>
</html>