Sample code for 30+ languages & platforms
Perl

ClickBank Parse Instant Notification JSON

See more ClickBank Examples

Demonstrates how to parse the JSON of a ClickBank instant notification.

Chilkat Perl Downloads

Perl
use chilkat();

$json = chilkat::CkJsonObject->new();

$json->Load("{  ...  }");

# Use this online tool to generate parsing code from sample JSON: 
# Generate Parsing Code from JSON

# See the parsing code below..

# Sample notification JSON: 

# {
#     "transactionTime": "2016-06-05T13:47:51-06:00",
#     "receipt": "CWOGBZLN",
#     "transactionType": "SALE",
#     "vendor": "testacct",
#     "affiliate": "affiliate1",
#     "role": "VENDOR",
#     "totalAccountAmount": 0.00,
#     "paymentMethod": "VISA",
#     "totalOrderAmount": 0.00,
#     "totalTaxAmount": 0.00,
#     "totalShippingAmount": 0.00,
#     "currency": "USD",
#     "orderLanguage": "EN",
#     "trackingCodes": [
#         "tracking_code"
#     ],
#     "lineItems": [
#         {
#             "itemNo": "1",
#             "productTitle": "Product Title",
#             "shippable": false,
#             "recurring": false,
#             "accountAmount": 5.00,
#             "quantity": 1,
#             "downloadUrl": "<download_url>"
#             "lineItemType": "CART"
#        }
#         {
#             "itemNo": "2",
#             "productTitle": "Second Product",
#             "shippable": false,
#             "recurring": true,
#             "accountAmount": 2.99,
#             "quantity": 1,
#             "downloadUrl": "<download_url>"
#             "lineItemType": "CART"
#        }
# 
#     ],
#      "customer": {
#         "shipping": {
#             "firstName": "TEST",
#             "lastName": "GUY",
#             "fullName": "Test Guy",
#             "phoneNumber": "",
#             "email": "test@example.net",
#             "address": {
#                 "address1": "12 Test Lane",
#                 "address2": "Suite 100",
#                 "city": "LAS VEGAS",
#                 "county": "LAS VEGAS",
#                 "state": "NV",
#                 "postalCode": "89101",
#                 "country": "US"
#             }
#         },
#         "billing": {
#             "firstName": "TEST",
#             "lastName": "GUY",
#             "fullName": "Test Guy",
#             "phoneNumber": "",
#             "email": "test@example.net",
#             "address": {
#                 "state": "NV",
#                 "postalCode": "89101",
#                 "country": "US"
#             }
#         }
#     },
#      "upsell": {
#         "upsellOriginalReceipt": "XXXXXXXX",
#         "upsellFlowId": 55,
#         "upsellSession": "VVVVVVVVVV",
#         "upsellPath": "upsell_path"
#     },
#      "hopfeed": {
#         "hopfeedClickId": "hopfeed_click",
#         "hopfeedApplicationId": 0000,
#         "hopfeedCreativeId": 0000,
#         "hopfeedApplicationPayout": 0.00,
#         "hopfeedVendorPayout": 0.00
#     },
#      "version": 6.0,
#     "attemptCount": 1,
#      "vendorVariables": {
#        "v1": "variable1", 
#        "v2": "variable2" 
#     }
#  }
# 
# 

$transactionTime = $json->stringOf("transactionTime");
$receipt = $json->stringOf("receipt");
$transactionType = $json->stringOf("transactionType");
$vendor = $json->stringOf("vendor");
$affiliate = $json->stringOf("affiliate");
$role = $json->stringOf("role");
$totalAccountAmount = $json->stringOf("totalAccountAmount");
$paymentMethod = $json->stringOf("paymentMethod");
$totalOrderAmount = $json->stringOf("totalOrderAmount");
$totalTaxAmount = $json->stringOf("totalTaxAmount");
$totalShippingAmount = $json->stringOf("totalShippingAmount");
$currency = $json->stringOf("currency");
$orderLanguage = $json->stringOf("orderLanguage");
$customerShippingFirstName = $json->stringOf("customer.shipping.firstName");
$customerShippingLastName = $json->stringOf("customer.shipping.lastName");
$customerShippingFullName = $json->stringOf("customer.shipping.fullName");
$customerShippingPhoneNumber = $json->stringOf("customer.shipping.phoneNumber");
$customerShippingEmail = $json->stringOf("customer.shipping.email");
$customerShippingAddressAddress1 = $json->stringOf("customer.shipping.address.address1");
$customerShippingAddressAddress2 = $json->stringOf("customer.shipping.address.address2");
$customerShippingAddressCity = $json->stringOf("customer.shipping.address.city");
$customerShippingAddressCounty = $json->stringOf("customer.shipping.address.county");
$customerShippingAddressState = $json->stringOf("customer.shipping.address.state");
$customerShippingAddressPostalCode = $json->stringOf("customer.shipping.address.postalCode");
$customerShippingAddressCountry = $json->stringOf("customer.shipping.address.country");
$customerBillingFirstName = $json->stringOf("customer.billing.firstName");
$customerBillingLastName = $json->stringOf("customer.billing.lastName");
$customerBillingFullName = $json->stringOf("customer.billing.fullName");
$customerBillingPhoneNumber = $json->stringOf("customer.billing.phoneNumber");
$customerBillingEmail = $json->stringOf("customer.billing.email");
$customerBillingAddressState = $json->stringOf("customer.billing.address.state");
$customerBillingAddressPostalCode = $json->stringOf("customer.billing.address.postalCode");
$customerBillingAddressCountry = $json->stringOf("customer.billing.address.country");
$upsellUpsellOriginalReceipt = $json->stringOf("upsell.upsellOriginalReceipt");
$upsellUpsellFlowId = $json->IntOf("upsell.upsellFlowId");
$upsellUpsellSession = $json->stringOf("upsell.upsellSession");
$upsellUpsellPath = $json->stringOf("upsell.upsellPath");
$hopfeedHopfeedClickId = $json->stringOf("hopfeed.hopfeedClickId");
$hopfeedHopfeedApplicationId = $json->IntOf("hopfeed.hopfeedApplicationId");
$hopfeedHopfeedCreativeId = $json->IntOf("hopfeed.hopfeedCreativeId");
$hopfeedHopfeedApplicationPayout = $json->stringOf("hopfeed.hopfeedApplicationPayout");
$hopfeedHopfeedVendorPayout = $json->stringOf("hopfeed.hopfeedVendorPayout");
$version = $json->stringOf("version");
$attemptCount = $json->IntOf("attemptCount");
$vendorVariablesV1 = $json->stringOf("vendorVariables.v1");
$vendorVariablesV2 = $json->stringOf("vendorVariables.v2");
$i = 0;
$count_i = $json->SizeOfArray("trackingCodes");
while ($i < $count_i) {
    $json->put_I($i);
    $strVal = $json->stringOf("trackingCodes[i]");
    $i = $i + 1;
}

$i = 0;
$count_i = $json->SizeOfArray("lineItems");
while ($i < $count_i) {
    $json->put_I($i);
    $itemNo = $json->stringOf("lineItems[i].itemNo");
    $productTitle = $json->stringOf("lineItems[i].productTitle");
    $shippable = $json->BoolOf("lineItems[i].shippable");
    $recurring = $json->BoolOf("lineItems[i].recurring");
    $accountAmount = $json->stringOf("lineItems[i].accountAmount");
    $quantity = $json->IntOf("lineItems[i].quantity");
    $downloadUrl = $json->stringOf("lineItems[i].downloadUrl");
    $lineItemType = $json->stringOf("lineItems[i].lineItemType");
    $i = $i + 1;
}