Difference between revisions of "NATS4 Package Plus"

From TMM Wiki
Jump to navigationJump to search
 
(11 intermediate revisions by 2 users not shown)
Line 120: Line 120:
 
== Pass Through Data ==
 
== Pass Through Data ==
  
'''Note: this feature is currently in development'''<br>
+
'''Note: this feature works for ALL billers that have a NATS packageplus integration via a backend call AND return a transaction. Only the following billers that have a NATS packageplus integration via a redirect have this functionality'''<br>
'''Note: this feature works for ALL billers that have a NATS packageplus integration via a backend call AND return a transaction. Only the following billers that have a NATS packageplus integration via a redirect have this functionality'''
+
Epoch - 5.0.2.7<br>
 +
SegPay - 5.0.2.7<br>
  
NATS allows you to send subscription pass through data for each package update and downgrade transaction.  You can use any of the available subscription pass through fields.  For example, to sent the member_subscription->passthrough2 field, you need to add the following to your packageplus.php link.
+
As of version 5.0.2.7, NATS allows you to send subscription pass through data for each package update and downgrade transaction.  You can use any of the available subscription pass through fields.  For example, to send the member_subscription->passthrough2 field, you need to add the following to your packageplus.php link.
  
 
<pre>
 
<pre>
Line 129: Line 130:
 
</pre>
 
</pre>
  
You will also need to make sure that your tokenplus templates have the following code.
+
You will also need to make sure that your packageplus templates include the following code.
  
 
<pre>
 
<pre>
Line 145: Line 146:
 
</pre>
 
</pre>
  
For the <optionid> value you can use the specific [[NATS4_Join_Option|NATS Option ID]] value to have the pass through value apply only if the member switches to that specific option.  Alternatively, you can use 0 for the <optionid> value to have the pass through value apply to any option that the member decides to switch to.
+
For the <optionid> value you can use the specific [[NATS4_Join_Option|NATS Option ID]] value to have the pass through value recorded only if the member switches to that specific option.  Alternatively, you can use 0 for the <optionid> value to have the pass through value apply to any option that the member decides to switch to.
  
Additionally you can use the PACKAGEPLUS_INHERIT_SUBSCRIPTION_PASSTHROUGH_DATA config setting (config admin -> surfer page, one click systems section) to tell NATS how to apply subscription pass through data from the previous subscription.
+
Additionally, you can use the PACKAGEPLUS_INHERIT_SUBSCRIPTION_PASSTHROUGH_DATA config setting (config admin -> surfer page, one-click systems section) to tell NATS how to record subscription pass through data from the previous subscription.
 
{| class="wikitable"
 
{| class="wikitable"
 
|Do Not Inherit (default)
 
|Do Not Inherit (default)
Line 161: Line 162:
 
|use the subscription pass through values from the previous subscription, values from the member_extra array will be ignored
 
|use the subscription pass through values from the previous subscription, values from the member_extra array will be ignored
 
|}
 
|}
 +
 +
== Advanced Member Lookup ==
 +
Usually, the member lookup is done using the siteid and the username parameters.  That will uniquely identify the member record in NATS.  However, that member record might have multiple subscriptions.  It is also possible to link to the /signup/packageplus.php script using a list of siteids instead of one siteid.  In that case, it is possible that multiple member records (with multiple subscriptions each) match the initial lookup.  When NATS is not able to determine a unique subscription, it will show the page_choose_subscription template so that the surfer can specify the subscription to use.  You can use additional flags to narrow or widen that lookup.  You can use them by adding the params to the URL and/or the form on the template.
 +
 +
=== Main Lookup ===
 +
username and site (or siteid) => this method is the default and works in the majority of the use cases, but can lead to multiple matching subscriptions for the same member record.
 +
 +
OR
 +
 +
memberid and session => just like the 'username and site' method above, this method works in the majority of use cases but can lead to multiple matching subscriptions for the same member record.
 +
 +
OR
 +
 +
username and siteids => this method works well when you have unique usernames for all of your NATS sites.  In that case, it can only lead to multiple matching subscriptions for the same member record.  If you do not have unique usernames for all of your sites, this method can lead to multiple matching members as well.
 +
 +
OR
 +
 +
memberidx (<biller>:<biller subscriptionid>) => this method will always lead to 1 subscription
 +
 +
=== Lookup Flags ===
 +
These flags are used to narrow or widen the initial member lookup
 +
 +
Subscription status (these options are mutually exclusive)
 +
* active_only => only return active subscriptions
 +
* expired_only => only return expired subscriptions
 +
* when neither flag is provided => return both active and expired subscriptions (default)
 +
 +
Subscription attribution (these options are mutually exclusive)
 +
* billerName => only return subscriptions for the given biller
 +
* allow_NATS_biller => allow subscriptions with the NATS:<value> memberidx (for example, NCR joins)
 +
* when neither flag is provided => do not return subscriptions with the NATS:<value> memberidx (default)
 +
 +
=== Ordering Flags ===
 +
These flags are used to order matching subscriptions on the page_choose_subscription template
 +
 +
* prefer_active => show active subscriptions first (default)
 +
* prefer_expired => show expired subscriptions first
 +
 +
=== Limit Flags ===
 +
These flags are used to return only 1 subscription
 +
 +
* most_recently_accessed_only => return only the most recently created/updated subscription (default)
 +
* least_recently_accessed_only => return only the least recently created/updated subscription
 +
  
 
[[Category:NATS4 Sites]]
 
[[Category:NATS4 Sites]]

Latest revision as of 04:28, 26 October 2022

NATS 4
Members Admin
The Members Admin
View Member Details
Add Member
MySQL Auth
Mod Authn DB
Multisite Access
Member Logging
Member Password Retrieval
OpenID Connect
Mod Auth OpenIDC
ID Numbers
Sites Admin
The Sites Admin
Sites
Site Setup
Site Templates
Tour Setup
Join Options
No Cost Registration
Special Pricing Options
Join Option Rules
Post URL Usage
Post URLs in NATS4
Approval/Upgrade/Denial Variables
Approval/Upgrade/Denial Template Variables
Mobile Tours
Token Sites
ID Numbers
Site Partner
Site User Management
Example Postbacks for Site User Management
Configure Redirects
Split A-B Testing
Username Checking
Form Validation
Post-Biller Templates
Send Information To Special Biller
Join Option Box vs Button
Qualified Join Page Hits
Allowed languages
Customize Join Form
Package Plus
Token Plus
Signup Plus
Type-In Traffic
Coupon Codes
Setting Rules
Site Groups
Options Simulator
ATVOD Verification Process

NOTE: This feature is available as of version NATS 4.1.3.1

Package Plus is a feature in NATS4 that allows you to offer your members incentives to upgrade their memberships to a higher tier in your Members Area. By using Package Plus, you can group your join options, such as Trial, Silver, and Gold, into a package. While the options are displayed on the join form for initial signup, Package Plus allows the packaged items to display on the Upgrade Form, allowing your current members to switch between available membership levels.

Before you begin, make sure you are using a biller that supports this feature.

Creating a Package

A Package is a set of join options located on the same join form which allows surfers to choose from multiple membership levels on one site (or multiple sites). You can create multiple packages for multiple sites in NATS, allowing you to offer your members a wide array of join options for each of your sites.

To begin creating a new Package, go to the Sites Admin and edit the tour for which you want your package to be available. On the next page, scroll down to the "Join Options for this Tour" section and create or edit a join option that you want to include in your package.

Adding a Package ID

When editing/creating your join option, you will see a field labeled "Package ID." Enter any number into this field to use as your Package ID number, and create your new package. For example, you can simply input "1" if you have not created any packages yet. Configure the rest of your join option settings, give it a title to mark the level of membership you want to offer, and Save your changes.

Editing a Package ID

Your new package will now be created with the Package ID number that you set. Once you have created your new Package, add the rest of the join options you want to include in that package by creating new join options and entering the Package ID number you set earlier in the "Package ID" fields.

Now that you have set up all of the join options you want to include in your Package, they will appear on your join form to provide your members with various levels of memberships to choose from. Make sure to clearly label your membership levels, and create separate pricing levels for the join options you plan to offer.

Package Upgrades

The Package Upgrade feature allows members to upgrade their membership using the join options provided on the join form. These join options must be part of the same package in order to allow your members to use the Package Upgrade feature.

To enable the Package Upgrade feature, edit the join option you want to allow your members to upgrade to, and check the "Package Upgrade Allowed" checkbox on the next page. Your members will only be able to switch between membership levels which have this option checked.

For example: You have Trial, Silver, and Gold membership levels. You have checked the "Package Upgrade Allowed" checkbox for Silver and Gold, but not trial. This means your members on the Trial level can upgrade to either Silver or Gold, but Silver and Gold members can not switch to Trail. This also means that Silver members can switch to Gold, and vice versa.

Allowing Package Upgrades

To disable Package Upgrades for your members, simply uncheck the "Package Upgrade Allowed" checkbox for your join options.


In order for a member to change their membership level after their initial signup, they must visit the Upgrade Form, located at:

yourdomain/signup/packageplus.php?username=X&site=Y

Please Note: Y is the ID for the site of the member.

Based on the member's current membership level, the form will display all possible upgrades or downgrades available within their package.

For example: You have Trial, Silver, and Gold membership levels. You have checked the "Package Upgrade Allowed" checkbox for Silver and Gold, but not trial. Your member is currently at Silver level. This means the form will display the Gold option, but not the Trial option.

Setting Rules

You can also use Rules to offer certain Packages to members referred from different tours, programs, affiliates, countries, and billers. You can also use rules to add your package for a specific duration of time, letting you use it as a limited promotion. Please see our NATS4 Rules wiki article for more information.

Package Plus with Cross Sells / Upsells

As of NATS version 4.1.5.1, you are able to leverage the Package Plus functionality with your Incoming Cross Sells and Upsells price point. This will allow a member that has signed up through an Incoming Cross Sale or Upsell to switch their subscription to a different option for that site.

Setting this up is similar to what was mentioned above. Once you have an Incoming Cross Sells or Upsells set up, you may see a "Package ID" field when editing the option. Place the same Package ID here that you added within the "Creating a Package" section above. There are no additional fields for this, since the member can switch from a Incoming Cross Sale or Upsell to a regular site price point, but can not switch from a regular site price point to a Incoming Cross Sale or Upsell price point.

Please note that the "Package ID" field may not be available for all Cross Sells or Upsells. This is because the Package Plus functionality may not have been integrated into NATS for that biller connected to that Incoming Cross Sale or Upsell.

Additional Security

Package Plus also contains additional security features, which allow you to further secure the transactions occurring on your join forms. For example, you can use API calls to get secure member authorization strings, verify surfer information on the join form, and change the input source to use POST instead of GET.

MEMBER_STRING_AUTH_PACKAGEPLUS

Use the MEMBER_STRING_AUTH_PACKAGEPLUS variable to choose whether or not you wish to use the new member auth strings available in NATS 4.1. These strings contain a variety of information, and are designed to prevent unwanted package purchasing attempts by outside sources.

This feature will be set to off by default. If you want to enable this feature for your Package Plus transactions, you can add the following necessary code in the config.php script on your NATS server:

$config['MEMBER_STRING_AUTH_PACKAGEPLUS'] = 1;

This will activate the MEMBER_STRING_AUTH_PACKAGEPLUS setting to use additional security for your member authorization strings. Do not add the provided code if you want to leave this feature disabled.

Once you have activated this setting, you must use the get_member_package_upgrade_string API call to get the correct auth string for the member you want to upgrade. Please see our API Get Member Package Upgrade String wiki article for more information on this process.

This function will return the auth string necessary for your members to get authenticated with for the Package Plus process. Include the auth string in the link for your member, and they will be able to use the Package Plus feature with the MEMBER_STRING_AUTH_PACKAGEPLUS security setting enabled.

http://<linkdomain>/signup/packageplus.php?site=<siteid>&username=<username>&authstring=<authstring>

Join Form Verification

You can also add additional security checks when offering Package Plus options for your members on your join form. The Package Plus feature verifies member e-mail addresses by default on the join form, but you can add a switch to choose between verifying a member's e-mail address, password, or both e-mail address and password.

This feature will verify member e-mail addresses by default. If you want to enable this feature for your Package Plus transactions, you can add the following necessary code in the config.php script on your NATS server:

$config['PACKAGEPLUS_REQUIRED_FIELDS'] = 0;

Add this setting with a value of '1' if you want Package Plus to verify member passwords. Change this to a value of '2' if you want Package Plus to verify both member passwords and e-mail addresses. Do not add the provided code if you want to keep authenticating Member e-mail addresses.

This allows you to choose what member information you want to verify on the join form itself, preventing anyone from submitting a Package Plus join form with an incorrect e-mail address, password, or both.

Using $_POST

Package Plus also offers another security feature, allowing you to change the method of submitting data from $_REQUEST to $_POST to further authenticate your members' information.

This feature is set to use $_REQUEST by default. If you wish to use $_POST to authenticate your join form transactions, add the following code to your config.php script:

$config['PACKAGEPLUS_POST_ONLY'] = 1;

Add this setting with a value of '1' if you want Package Plus to only allow $_POST when authenticating your members. Do not add the provided code if you want to use $_REQUEST when authenticating members.

Throttling

Throttling is a security setting available in NATS 4.1, which allows you to lock out surfers for a specified period of time if they make too many attempts on certain pages in NATS.

You can use the Throttling feature to help secure your packageplus.php page, preventing surfers from forcing transactions without the correct auth string. Just go to the "Security" configuration page, found in the Configuration Admin.

For more information on this feature, please see our Throttling wiki article.

Pass Through Data

Note: this feature works for ALL billers that have a NATS packageplus integration via a backend call AND return a transaction. Only the following billers that have a NATS packageplus integration via a redirect have this functionality
Epoch - 5.0.2.7
SegPay - 5.0.2.7

As of version 5.0.2.7, NATS allows you to send subscription pass through data for each package update and downgrade transaction. You can use any of the available subscription pass through fields. For example, to send the member_subscription->passthrough2 field, you need to add the following to your packageplus.php link.

&member_extra[<optionid>][subscription_passthrough2]=<your value here>

You will also need to make sure that your packageplus templates include the following code.

{if !empty($memberExtra) && is_array($memberExtra)}
	{foreach from=$memberExtra key=member_extra_key item=member_extra_val}
		{if is_array($member_extra_val)}
			{foreach from=$member_extra_val key=member_extra_key2 item=member_extra_val2}
				<input type="hidden" name="member_extra[{$member_extra_key|escape:'htmlall'}][{$member_extra_key2|escape:'htmlall'}]" value="{$member_extra_val2}"/>
			{/foreach}
		{else}
			<input type="hidden" name="member_extra[{$member_extra_key|escape:'htmlall'}]" value="{$member_extra_val}"/>
		{/if}
	{/foreach}
{/if}

For the <optionid> value you can use the specific NATS Option ID value to have the pass through value recorded only if the member switches to that specific option. Alternatively, you can use 0 for the <optionid> value to have the pass through value apply to any option that the member decides to switch to.

Additionally, you can use the PACKAGEPLUS_INHERIT_SUBSCRIPTION_PASSTHROUGH_DATA config setting (config admin -> surfer page, one-click systems section) to tell NATS how to record subscription pass through data from the previous subscription.

Do Not Inherit (default) do not use the subscription pass through values from the previous subscription, only use the values from the member_extra array
Inherit and Override use the subscription pass through values from the previous subscription, values from the member_extra array will override existing values
Inherit and Override blank values use the subscription pass through values from the previous subscription, values from the member_extra array will override existing values only if the existing value is blank (0 is not blank)
Inherit Only use the subscription pass through values from the previous subscription, values from the member_extra array will be ignored

Advanced Member Lookup

Usually, the member lookup is done using the siteid and the username parameters. That will uniquely identify the member record in NATS. However, that member record might have multiple subscriptions. It is also possible to link to the /signup/packageplus.php script using a list of siteids instead of one siteid. In that case, it is possible that multiple member records (with multiple subscriptions each) match the initial lookup. When NATS is not able to determine a unique subscription, it will show the page_choose_subscription template so that the surfer can specify the subscription to use. You can use additional flags to narrow or widen that lookup. You can use them by adding the params to the URL and/or the form on the template.

Main Lookup

username and site (or siteid) => this method is the default and works in the majority of the use cases, but can lead to multiple matching subscriptions for the same member record.

OR

memberid and session => just like the 'username and site' method above, this method works in the majority of use cases but can lead to multiple matching subscriptions for the same member record.

OR

username and siteids => this method works well when you have unique usernames for all of your NATS sites. In that case, it can only lead to multiple matching subscriptions for the same member record. If you do not have unique usernames for all of your sites, this method can lead to multiple matching members as well.

OR

memberidx (<biller>:<biller subscriptionid>) => this method will always lead to 1 subscription

Lookup Flags

These flags are used to narrow or widen the initial member lookup

Subscription status (these options are mutually exclusive)

  • active_only => only return active subscriptions
  • expired_only => only return expired subscriptions
  • when neither flag is provided => return both active and expired subscriptions (default)

Subscription attribution (these options are mutually exclusive)

  • billerName => only return subscriptions for the given biller
  • allow_NATS_biller => allow subscriptions with the NATS:<value> memberidx (for example, NCR joins)
  • when neither flag is provided => do not return subscriptions with the NATS:<value> memberidx (default)

Ordering Flags

These flags are used to order matching subscriptions on the page_choose_subscription template

  • prefer_active => show active subscriptions first (default)
  • prefer_expired => show expired subscriptions first

Limit Flags

These flags are used to return only 1 subscription

  • most_recently_accessed_only => return only the most recently created/updated subscription (default)
  • least_recently_accessed_only => return only the least recently created/updated subscription