Knowledgebase : Elevated X CMS > On Demand (VOD)
   

For CCBILL only:

Multi-sign – multiple transactions from individual consumers can be processed and accepted within a short period of time, enabling them to receive additional access to content.

One click upgrades (ChargeByPrevious) – an excellent option for the live entertainment business model, CCBill One-click Upgrades let you offer a simple way for consumers to purchase additional content without having to repeatedly enter in their billing information.

The reason we ask for both in this case is so that if a customer goes ahead and clicks a "Buy Now" on a couple videos one after the other, it won't automatically decline them. Also, it won't ask for their credit card number again and again between orders.

The system can work without these in place, but from a user perspective, it isn't as friendly.

In order to set up your VOD site to use CCbill, this will take changes on CCbill's admin panel, and then setup within your VOD area.

CCbill Control Panel Setup

1) Subaccount Setup:

VOD requires a separate subaccount be set up with CCbill. This subaccount needs to be approved for use in order to do test orders and real orders.

This subaccount will need the following settings:
- Dynamic Pricing set up.
- User management turned off.
- Multi-Sign turned on.
- One Click Upgrades and SMS upgrades are unnecessary and not used by our system.
- OPTIONAL: If you want to have orders over $100, you'll also need to request this from CCBill. Otherwise, we can cap the shopping cart so that orders over $100 can't be placed.
- OPTIONAL: ChargePlus support (see below for more details)

2) ChargePlus Support (Optional):

If you want customers to be able to make purchases without having to put in their credit card each time, we will need ChargePlus to be turned on by CCbill's end. Please check with CCbill if you wish for this to be set up.

NOTE: You may not be approved for chargeByPrevious. In this case, customers will need to enter their billing information for each purchase.

If you are approved for ChargePlus, CCbill will need to set up a datalink account so our system can take advantage of ChargePlus.
Datalink has IP restrictions in place, so access will need to be granted to your outgoing Server IP.

Your host can provide this IP address to you as needed. The easiest way for them to do this is to run:

curl -s https://support.elevatedx.com/ip.php 2>&1

Via the command line.

3) Setup Postbacks:

VOD requires specific postbacks and redirects set up under this new subaccount. These URLs are set up as follows:

Approval URL: http://mysite.com/vod/postback.php
Approval Post URL: http://mysite.com/vod/postback.php
Denial URL: Leave Blank
Denial Post URL: Leave Blank

Please make sure that http://mysite.com/vod/ is replaced with the URL to your VOD area.

5) Test Orders

CCbill will need to configure a test order email. Typically, CCbill will want an email address and IP address range that is allowed.

If you would like Elevated X Support to perform any tests, our IP is:

192.81.132.21

Please also make sure that your server IP listed above is listed as an IP that can do test transactions.

6) Label Change:

You will want to have CCBILL change the default "Pricing Description" that displays to your customers. By default this will be "X.XX (USD) for 2 days - (Non-recuring). Please have them change the description to:

"X.XX (USD) for your purchase"

7) Required Information

Once this is done, please take note of the following information, as it will go in your admin panel

- CCbill Account Number
- CCbill Subaccount Number
- CCbill Form Name / Id. Forms should be using their FlexForms interface, instead of JPost
- CCbill Salt Value
- CCbill Datalink Login / Password (If you are using ChargePlus)

This will come in handy for setting up your VOD payment processor within the CMS admin panel.

CCbill Support

If you have trouble getting a reply back or timely service, please consider calling CCBILL's merchant support line at 800.510.2859 and stay with them on the line until all the issues are correct and you are satisfied.

Admin Panel Setup

Once you have the required information / changes from Verotel, you'll want to set up a billing option for Verotel:

1) Within the VOD menu at the top of your CMS Admin Panel, choose the Billing dropdown.

2) Add a new Billing Entry.

3) Under Biller Type, make sure you choose CCbill from the available options.

4) Make sure one or more of the following is checked:

- Show Buy Now Button

- Enable Shopping Cart

- Allow Deposit of Funds

5) Make sure you populate the CCbill related fields with the information you got from up above:

- CCbill Account Number

- CCbill Subaccount Number

- CCbill Form Name

- CCbill Salt Value

6) Optional: If you are using chargePlus, make sure "Enable One-Click Upgrades" is checked.

Then, be sure to populate the values of:

- CCbill Datalink Login

- CCbill Datalink Password

6) Once you have filled out the required information, Click Save Entry.

Testing the Payment Processor

Please see this guide for testing the payment processor:

https://support.elevatedx.com/index.php?/Knowledgebase/Article/View/295/19/testing-a-new-vod-biller

Making your VOD Area Use this Payment Processor

Please see this guide for testing the payment processor:

https://support.elevatedx.com/index.php?/Knowledgebase/Article/View/296/19/changing-what-biller-your-vod-area-uses

Each VOD area is set up to use a single payment processor. All users that sign into the VOD area use this payment processor (unless overridden for that user, see here).

In order to change which payment processor an area uses, please do the following:

1) In the VOD Menu, go to Areas.

2) Find the relevant VOD area you wish to change. If you see multiple areas, you will want to make sure this is an "On Demand Area". Click "Edit"

3) Under "On Demand Settings", change the value of "Default Biller".

In new VOD installs, this value is generally set to "Auto-Decline Biller". This is done so that new signups to your site cannot make any purchases until your payment processor setup is done.

Change this to the payment processor you wish to use for this area.

4) Once you have done this, click "Save Entry"

Your users will now use this payment processor instead of the previous one you had in place.

If an order is completed for an end user, but it does not show up in the VOD system for any reason, it's possible to manually credit a user.

To do this:

1. Click VOD -> Manage Users

2. Find the user that you wish to credit. Click Edit.

3. Under the User Edit Menu here, you'll see an option to Credit Account. Click this to go into the Credit Menu.

4. From here, you will want to fill out both the amount of the store credit, and a label for the transaction. In this case, something like "Store Credit" will do.

5. Click Save Entry on the bottom of the page, and you're done!

Within a VOD area, each scene that belongs to the VOD area belongs to a pricing tier. Examples of pricing tiers can be:

- Free Content

- Standard Content

- Premium Content

If a scene does not belong to a pricing tier, it will not show up on your VOD area.

It's possible to mass-change scenes so they won't show up on a VOD area. Here's how:

1) In your CMS Admin Panel, Click "Content" at the top and choose "Manage Content Sets"

2) Here, you will want to choose any scenes that you don't want showing up on your VOD area. Make sure they are checked.

3) At the bottom of the screen, you will see "Bulk Edit On Demand Price Tier".

For the VOD area you wish to change, change the tier from "Don't Change" to "None"

What this does is remove the pricing tiers from these scenes. Since they have no tiers, they won't show up on your VOD area.

4) Click "Save Entry"

This document covers the addition of a payment processor for third party developers who are creating code that integrates with Elevated X.

Note: Our support staff DOES NOT not troubleshoot or assist with ANY integration of custom code.

Requirements

1. A membership signup/join form will need to be coded that accepts payment information, allows for creation of user login/password and passes this information to the payment gateway and user database/mod_auth_mysql or htpasswd file for member management and recurring billing.

This can be done on a custom join page or form and related HTML/JS/PHP code can be entered into the provided join.tpl template file included with each CMS theme template set.


2. A script or gateway method will need to be created/utilized for handling rebilling of recurring payments.


3. Use of Elevated X Protect for basic form based login and authentication (We will set this up for you) or a more robust security script that protects areas behind a paywall such as member and trial areas e.g. .htaccess or a security script such as ProxyPass https://www.elevatedx.com/proxypass.php or similar component will need to be used to provide for login and authentication.

 

 

This document covers the addition of VOD payment processors not already integrated with the Elevated X platform for third party developers who are creating code that integrates with the payment processor and Elevated X VOD features.

Currently integrated processors: CCBill, Epoch, Verotel, NetBilling, OrbitalPay, NATS

Note: Our support staff DOES NOT not troubleshoot or assist with ANY integration of custom code.

Setup Requirements

1. Within cmsinclude.ini.php, you will need to define both CUSTOM_PURCHASE_FUNCTION and CUSTOM_POSTBACK_FUNCTION.

CUSTOM_PURCHASE_FUNCTION=custom_biller_purchase
CUSTOM_POSTBACK_FUNCTION=custom_biller_postback

2. Within cmsinclude.ini.php, you will also need to specify an include for where these custom files will sit.

require[] = "customcode.php"

This article includes a sample customcode.php that includes sample dummy code. Please see this for more details.

3. Within the CMS admin panel, you will need to go to VOD -> Billing, and add an entry of type custom.

4. Within the CMS admin panel, you will need to set up your area so it uses this custom billing type.

Click here for more information.

Information about CUSTOM_PURCHASE_FUNCTION:

When this hook is called.

When a user initiates a purchase, this hook is called.

What is passed to it:

function custom_biller_purchase($arr, &$out);

$arr: The first argument is an array of arguments that are being passed along by the VOD system.

$arr["billertype"]: This value is "custom" as it is the custom payment processor type.
$arr["userid"]: This is the internal userid within the VOD system. This needs to be passed along through your script when it's being sent to the postback function.
$arr["packageid"]: This is an array of integers that specifies which package ids are being purchased.
$arr["setid"]: This is an array of integers that specify what set(s) are being purchased.
$arr["amount"]: The amount that is being charged.

$arr["transaction"]: This exists if the user has already made a prior purchase within the system. This is used for things like one-click upgrades, where a user has already made a purchase. This will be an associative array, if present.

$out: The second argument is passed by reference. Setting values within the $out array will affect how the system treats the call.

$out["redirect"]: If this value is set, the system will redirect the user to an alternate page. In this case, this is the billing page where information is gathered.

$out["success"]: If this value is set to 1 instead of 0, the system will treat the purchase as already being successful, and will add credits / purchases within the VOD system.

$out["errmsg"]: If there is an error, setting this value will present an error to the user as a popup dialog box.

What is returned:

This function should return false or null.

Information about CUSTOM_POSTBACK_FUNCTION:

When this hook is called.

When a successful purchase action has been called within your custom payform, you will need to do a curl post to postback.php within your VOD area.

If you pass along the required information to postback.php, the system will call your custom postback function, which verifies the order, and tells the system whether to add the order to the system, or print an error message.

What is passed to it:

function custom_biller_postback($out)

$out: The first argument is passed by reference. Setting values within the $out array will affect how the system treats the call.

$out["redirect"]: If this value is set, the system will redirect the user to an alternate page. In this case, this is the billing page where information is gathered.

$out["success"]: If this value is set to 1 instead of 0, the system will treat the purchase as already being successful, and will add credits / purchases within the VOD system.

$out["errmsg"]: If there is an error, setting this value will present an error to the user as a popup dialog box.

$out["plainoutput"]: If this is set, instead of postback.php trying to print the value of $out as json_encoded array, instead print this message instead.

$out["outputfunction"]: If this is set, instead of postback.php trying to print out the value of $out, a custom anonymous function is called when a purchase is successful.

Example:
$out["outputfunction"] = function() { 

  header("Content-Type: text/xml");

  echo "<result>1</result>";

  exit;

};

What is returned:

This function should return an array with the following information:

$arr["userid"]: This should be the internal userid within the VOD system. This should be passed along through your payment processor system, as received from your CUSTOM_PURCHASE_FUNCTION.

$arr["packageid"]: This should be a comma separated list of package ids within the VOD system. This should be passed along through your payment processor system, as received from your CUSTOM_PURCHASE_FUNCTION.

$arr["setid"]: This should be a comma separated list of set ids within the VOD system. This should be passed along through your payment processor system, as received from your CUSTOM_PURCHASE_FUNCTION.

$arr["amount"]: This is the amount the enduser was charged.

$arr["transaction"]: This is optional. This can contain information such as a transaction id, subscription id, or any other information that you may want to check for if a user tries to make orders in the future.

Note: This must be an associative array in order for this to be included in the system.

After setting these, please be sure to actually return $arr; at the end of your function. See references for more information.

References:

Attached to this document are the following:

customcode.php: This includes reference hooks to the VOD system that you or your coder will need to modify to integrate with the system.

custom_payform.php: This is a stub payment processing form. You or your coder can use this as a starting reference for integrating the system with your merchant or third party payment processor.

After a new payment processor is set up, the CMS allows specific end-users to use the new payment processor. This allows webmasters to test that their billing solution works before deploying it to live users for general use.

In order to do this:

1) Under the VOD Menu, choose "Manage Users"

2) You'll then want to look up the existing user you want to have test this payment processor. Once you have found this user, click "Edit"

3) Under "Development Staging Features", there is an option called "Override VOD Biller"

You will want to change this from "Default Biller" to the VOD payment processor you wish for this user to test.

4) Once you have made this change click "Save Entry"

Now, any purchases you make when logged in as this user will use the new payment processor you have set up.

In order to set up your VOD site to use Verotel, this will take changes on Verotel's admin panel, and then setup within your VOD area.

Verotel Control Panel Setup

1) Within your control panel here:
https://controlcenter.verotel.com/

You will need a new website set up within their admin panel that's exclusively used for the VOD product here. This way, any sort of other transactions you have outside of VOD won't interfere with VOD.

2) Once this is done, go into the new website set up within Verotel's admin panel. Please make sure the Testing Card is enabled for this website. Once it is enabled, please provide us the:

- Testing Card number
- Testing Card CVV

Both of these are available under the Website Detail page in the Verotel admin panel.

3) Once this is done, we will need you to go into this new website, and then choose "Flexpay Options" for this website.

We will need the following information:
- Signature Key
- Shop ID

4) On the same "Flexpay Options" page, you will need to change the Flexpay postback script URL to this value:

http://mysite.com/vod/postback.php

Where http://mysite.com/vod/ is replaced with the URL to your actual VOD area.

5) On the same "Flexpay Options" page, under Payment Options, please make sure only the credit card option is checked. We don't support Bitcoin or Direct Debit at this time.

Once this is done, click Save.

If you have trouble getting any of these things set up, please contact Verotel Merchant Support. You can find their contact information on this page under the Merchant Support heading:

http://www.verotel.com/en/contactus.html

Admin Panel Setup

Once you have the required information / changes from Verotel, you'll want to set up a billing option for Verotel:

1) Within the VOD menu at the top of your CMS Admin Panel, choose the Billing dropdown.

2) Add a new Billing Entry.

3) Under Biller Type, make sure you choose Verotel from the available options.

4) Make sure one or more of the following is checked:

- Show Buy Now Button

- Enable Shopping Cart

- Allow Deposit of Funds

5) Make sure you enter the Verotel Shop Id and Verotel Signature Key you received from their admin panel.

6) Click Save Entry

Testing the Payment Processor

Please see this guide for testing the payment processor:

https://support.elevatedx.com/index.php?/Knowledgebase/Article/View/295/19/testing-a-new-vod-biller

Making your VOD Area Use this Biller

Please see this guide for testing the biller:

https://support.elevatedx.com/index.php?/Knowledgebase/Article/View/296/19/changing-what-biller-your-vod-area-uses

Can I hide scenes from showing up on a VOD store?

Yes. Please see this guide on how to do this:

https://support.elevatedx.com/index.php?/Knowledgebase/Article/View/300/19/how-to-hide-scenes-from-showing-up-on-a-vod-store

Can I hide scenes from showing up on my members area and have them show on my VOD store?

Not at this time. You can, however, make your members area a Hybrid Area, and optionally make sure all of your scenes are free. More information below.

What is a Hybrid VOD area?

A regular VOD area is visible to the public. An end-user can browse your VOD store, look at trailers, do searches, etc. If they wish to rate, favorite, or purchase a scene, they'll need to sign in. The CMS handles the registration and sign-in of this user.

A Hybrid VOD area is like a regular members area. It's protected by a paywall. It's billing, and usernames are handled by your payment processor. What's different about a hybrid area from a regular members area is that you can offer upsells to your members. For example, members can view standard content for free, but are able to buy premium content, downloads, or other possibilities for an upcharge.

Do changes I make to my VOD area affect my members area?

Under the VOD header in the admin panel, making changes within the following will not affect your members area:

- View Transactions
- Billing
- Price Tiers
- Purchase Options

In addition:

- Bulk Edit On Demand Price Tier on Set Listing Page: This does not affect your members area at all.

- On Demand Settings on Set Edit Page: This does not affect your members area at all.

For the following, use caution:

- Users: Any changes you make for that specific user will only pertain to that user.

- Areas: As long as you make changes to the VOD area and not the members area under this heading, it will not affect your members area.

- Template Fields: Make sure you are editing your VOD area.

- Templates: If you are using the same template folder for your VOD area as you are your members area, changes to your templates will show up in both areas.

- content/upload: Any content you upload to your CMS is used by both your members area and VOD area.