<?php /* * Adding ChargeBee php librariesand configuration files. */ require_once dirname(__FILE__) . "/Config.php"; require_once dirname(__FILE__) . "/ErrorHandler.php"; require_once dirname(__FILE__) . "/Util.php"; if ($_POST) { validateParameters($_POST); try { $result = createSubscription(); addShippingAddress($result->subscription(), $result->customer()); $jsonResp = array(); /* * Forwarding to success page after successful create subscription in ChargeBee. */ $queryParameters = "name=" . urlencode($result->customer()->firstName) . "&planId=" . urlencode($result->subscription()->planId); $jsonResp["forward"] = "thankyou.html"; echo json_encode($jsonResp, true); } catch (ChargeBee_PaymentException $e) { handleTempTokenErrors($e); } catch (ChargeBee_InvalidRequestException $e) { handleInvalidRequestErrors($e, "plan_id"); } catch (Exception $e) { handleGeneralErrors($e); } } /* Creates the subscription in ChargeBee using the checkout details and * stripe temporary token provided by stripe. */
} else { if ($demoName == "stripe_js") { createPlan("Annual", "annual", 2000); $returnParameters = "demo_name=Stripe Js&plan=Basic"; } else { if ($demoName == "estimate") { $addon1 = createAddon("Wall Posters", "wall-posters", 300, "quantity"); $addon2 = createAddon("E Book", "e-book", 200); $plan = createPlan("Monthly", "monthly", 600); $returnParameters = "demo_name=Estimate api&plan=Monthly&addon=E-book&addon=Wall Posters"; } else { if ($demoName == "usage_based_billing") { $returnParameters = "msg=To generate a <b>\"Pending\" </b> invoice, you need to enable <b>\"Notify and wait to close invoice\"</b> " . "in your site settings. Once enabled, try to generate an invoice for a subscription by changing " . "the subscription's plan."; } else { if ($demoName == "ssp") { createSubscription("John", "Doe", "*****@*****.**"); $returnParameters = "demo_name=Self service portal&plan=Basic&customer=John Doe"; } else { if ($demoName == "stripe-popup-js") { createPlan("Basic", "basic", 1000, 15); $returnParameters = "demo_name=Stripe checkout popup&plan=Basic"; } else { if ($demoName == "braintree-js") { createPlan("Professional", "professional", 20, 10); $returnParameters = "demo_name=Braintree js Checkout&plan=Professional"; } else { if ($demoName == "checkout_iframe") { createPlan("Basic", "basic", 1000, 15); $returnParameters = "demo_name=Checkout using iFrame&plan=Basic"; } else { header("HTTP/1.0 400 Error");