Difference between revisions of "NATS4 Upsell Plus"

From TMM Wiki
Jump to navigationJump to search
m
 
(42 intermediate revisions by 7 users not shown)
Line 3: Line 3:
 
}}
 
}}
  
Upsell Plus is a feature in [[NATS4]] that allows you to offer your [[Ct#Member|members]] incentives to sign up for other [[Ct#Site|sites]] after they have joined one of your [[Ct#Site|sites]]. In order to complete the [[Ct#Upsell|Upsell]] Plus process, the [[Ct#Member|member]] will have to click on a link that you provide for them.
+
Upsell Plus is a feature in [[NATS4]] that allows you to offer your [[Ct#Member|members]] incentives to sign up for other [[Ct#Site|sites]] after they have joined one of your sites. In order to complete the [[Ct#Upsell|Upsell]] Plus process, the member will have to click on a link that you provide for them.
  
== Creating a Link ==
+
== Creating an Upsell Link ==
  
If you want to offer the Upsell Plus feature to your [[Ct#Member|members]], first create an [[Ct#Upsell|upsell]] in the [[Upsells Admin]], then provide your [[Ct#Member|member]] with a link to your Upsell Plus option. This supports one of two links:
+
If you want to offer the Upsell Plus feature to your members, first create an upsell in the [[Upsells Admin]], then provide your member with a link to your Upsell Plus option. This supports one of two link formats:
 +
<br><br>
 +
Preferred format:
 +
* <kbd><nowiki>https://<linkdomain>/signup/upsellplus.php?site=<siteid>&username=<username></nowiki></kbd>
 +
**''Siteid and Username is the preferred method''
 +
Alternative format:
 +
* <kbd><nowiki>https://<linkdomain>/signup/upsellplus.php?memberid=<memberid>&natssess=<nats_session>&site=<siteid></nowiki></kbd>
 +
<br>
 +
For all links, replace <kbd><linkdomain></kbd> with the [[Ct#Linkdomain|linkdomain]] of the site that is offering this upsell and <kbd><siteid></kbd> with the site ID this member has already joined under. Replace <kbd><memberid></kbd>, <kbd><nats_session></kbd>, and <kbd><username></kbd> in the above examples with the member ID, session ID, and username of the member, respectively. Although both of the example formats will work with Upsell Plus, the first format is preferred.
 +
<br><br>
 +
You can also specify multiple sites to check through (to use with network member sites, for example):
 +
* <kbd><nowiki>https://<linkdomain>/signup/upsellplus.php?siteids=<siteid>,<siteid2>,<siteid3>&username=<username></nowiki></kbd>
  
* <nowiki>http://<linkdomain>/signup/upsellplus.php?site=<siteid>&username=<username></nowiki>
+
== Optional Variables ==
**''Siteid and Username is the preferred way of doing it.
+
 
* <nowiki>http://<linkdomain>/signup/upsellplus.php?memberid=<memberid>&natssess=<nats_session>&site=<siteid></nowiki>
+
Upsell Plus supports the use of additional variables to get certain effects from your Upsell Plus sales:
 +
 
 +
* If you want members to be automatically submitted for upsells, add <kbd>&upsellid=<upsellid>&email=<email>&submit=1</kbd> to the end of the Upsell Plus URL. Replace <kbd><email></kbd> with the e-mail address of the member and <kbd><upsellid></kbd> with the Outgoing Upsell ID of the upsell to purchase, found in the Upsells Admin.
 +
* If you want any of the available upsell options on the [[Ct#Join Form|join form]] to be pre-checked, add <kbd>&upsellids=<upsellid_list></kbd> to the end of the Upsell Plus URL. Replace <kbd><upsellid_list></kbd> with a comma-separated list of ID numbers for the upsell options you want to be automatically checked.
 +
* Some billers also support passing additional custom variables by adding <kbd>&member_extra[<upsellid>][<customvariable>]=<customvalue></kbd> to the Upsell Plus URL.  Billers that currently support this are:
 +
** [[NATS4_Epoch#UpsellPlus|Epoch]]
 +
** [[NATS4_SegPay#Cross Sells and Upsells|Segpay]]
 +
** [[NATS4_Vendo_Services#Cross_Sales|Vendo Services]]  <font color=red>in development</font>
 +
* To use autocampaigns with internal upsells, add <kbd>&autocamp=campaign</kbd> to the Upsell Plus URL. '''NOTE:''' For this to work, you must set <kbd>$config['ALLOW_REQUEST_AUTOCAMP']=1</kbd> in your ''config.php'' file and add "autocamp" as a hidden variable in the gateway_upsell and thirdparty_upsell templates: <code><input type="hidden" name="autocamp" value="{$smarty.request.autocamp}"></code>
 +
* To save custom fields to the member record that will be created for the upsell, send the value in member_extra[custom{x}], where {x} is a number from 1-10
 +
** <input type=hidden name=member_extra[custom1] value={some_custom_value}>
 +
 
 +
== Redirect and Postback URLs ==
 +
 
 +
As of NATS version 5.0.2.7, Upsell Plus supports overriding approval and denial redirect urls as well as additional approval and denial postback urls.  This feature will work for any biller that does not require a redirect to their system to complete the upsell process.  To use this feature, you will need to add the additional[] array to your /signup/upsellplus.php link.  For example, adding <code><kbd><nowiki>&additional[approvalurl]=https://somedomain.com/somepage.html</nowiki></kbd></code> will redirect the member to the <kbd><nowiki>https://somedomain.com/somepage.html</nowiki></kbd> url if ANY of the upsells are successful instead of showing the NATS page_upsell_approval template. Here are all of the available variables:
 +
 
 +
* <code>additional[approvalurl]=<url>?<query_string></code> - url to redirect to if ANY of the upsells are successful
 +
* <code>additional[denialurl]=<url>?<query_string></code> - url to redirect to if NONE of the upsells are successful
 +
* <code>additional[approvalposturl]=<url>?<post_data></code> - url to send a post to if ANY of the upsells are successful (this is in addition to not instead of the postback url defined in the NATS site admin)
 +
* <code>additional[denialposturl]=<url>?<post_data></code> - url to send a post to if NONE of the upsells are successful (this is in addition to not instead of the postback url defined in the NATS site admin)
 +
 
 +
In order to use this feature, you need to set the signature password via the ADDITIONAL_SIGN_KEY config setting on the config admin -> surfer page in the one click systems section, sign the additional array in the url and provide the signature (<code>additional[signature]=<signature></code>) in your request.  Also, please make sure to remove the signature password value (<code>additional[password]</code>) from your request.  Here is an example script.
 +
<pre>
 +
<?php
  
For both links, replace <linkdomain> with the [[Ct#Linkdomain|linkdomain]] for the site you are upselling to, and replace <siteid> with the siteid that the member has already joined under. Although both of the above link examples work with Upsell Plus, the first link is preferred. Replace <memberid> and <nats_session> in the above examples with the [[Ct#Member|member's]] member id, session id, and/or username, respectively.
+
$data = Array();
 +
$data['additional'] = Array();
 +
$data['additional']['password'] = '<value of the ADDITIONAL_SIGN_KEY config setting>';
 +
$data['additional']['approvalurl'] = '<value>';
 +
$data['additional']['denialurl'] = '<value>';
 +
$data['additional']['approvalposturl'] = '<value>';
 +
$data['additional']['denialposturl'] = '<value>';
  
== Optional Variables ==
+
ksort($data['additional']);
 +
$dataString = implode('~~~', $data['additional']);
 +
$data['additional']['signature'] = hash('sha512', $dataString);
  
This feature also supports the use of additional variables to get certain effects from your Upsell Plus sale.
+
unset($data['additional']['password']);
  
If you want [[Ct#Member|members]] to be automatically submitted for [[Ct#Upsell|upsells]], add the variables ''&upsellid=<upsellid>&email=<email>&submit=1" to the end of your Upsell Plus URL. Replace <upsellid> with an Upsell ID found in the [[Upsells Admin]], and <email> with the e-mail address for that member.
+
$query = http_build_query($data);
 +
</pre>
  
If you want any of the available [[Ct#Upsell|upsell]] options on the [[Ct#Join Form|join form]] to be pre-checked, add ''&upsellids=<upsellid_list>'' to the end of your Upsell Plus URL. Replace <upsellid_list> with a comma-separated list of ID numbers for the [[Ct#Upsell|upsell]] options you want to be automatically checked.
+
You will also need to make sure you have the following code on your upsellplus templates
 +
<pre>
 +
{if !empty($additionalData) && is_array($additionalData)}
 +
{foreach from=$additionalData key=additional_key item=additional_val}
 +
<input type="hidden" name="additional[{$additional_key|escape:'htmlall'}]" value="{$additional_val}"/>
 +
{/foreach}
 +
{/if}
 +
</pre>
  
 
== Site Templates ==
 
== Site Templates ==
  
Once you have set up your [[Ct#Upsell|upsell]] options, your Upsell Plus URL, and any optional variables you wish to add to the process, you will need to setup new [[Ct#Site|site]] [[Ct#Template|templates]] for your Upsell Plus feature.
+
Once you have set up your upsell options, your Upsell Plus URL, and any optional variables you wish to add to the process, you will need to modify new site [[Ct#Template|templates]] if you want to customize the design of the Upsell Plus pages visited by your members:
 +
 
 +
* '''gateway_upsell''' - Displayed to the member when they click an upsellplus link if their original subscription was purchased through a gateway biller
 +
* '''thirdparty_upsell''' - Displayed to the member when they click an upsellplus link if their original subscription was purchased through a third-party biller
 +
* '''page_upsell_approval''' - Displayed to the member if their upsell is approved
 +
* '''page_upsell_denial''' - Displayed to the member if their upsell is denied
 +
 
 +
There is also a '''_mobile''' version for each of the above templates, which is displayed to the member if NATS detects they are using a mobile device.
  
These templates are:
+
== Additional Settings ==
* gateway_upsell - Shown to the [[Ct#Member|member]] when they click the link given to them.
 
* page_upsell_approval - Shown to the [[Ct#Member|member]] when their [[Ct#Upsell|upsell]] is approved.
 
* page_upsell_denial - Shown to the [[Ct#Member|member]] when their [[Ct#Upsell|upsell]] is denied.
 
  
Add the text that you want to display on those [[Ct#Template|templates]], make sure that your [[Ct#Upsell|upsell]] [[Ct#Join Option|join options]] are correct, and save any changes you have made.
+
As of NATS version 5.0.2.7, you can (optionally) enable the UPSELLPLUS_SKIP_HIDDEN_JOIN_OPTIONS configuration setting on the config admin -> surfer page in the 'one click systems' section to prevent NATS from showing hidden join options on the /signup/upsellplus.php page unless that join option is passed in via the upsellid or the upsellids variables.  This feature has no impact on processing, only on display.
  
 
== Additional Security ==
 
== Additional Security ==
  
As of [[NATS]] version 4.1, Upsell Plus offers additional security features that you can use to further secure your [[Ct#Member|member]] [[Ct#Upsell|upsells]]. The ''MEMBER_STRING_AUTH_UPSELLPLUS'' variable allows you to choose whether or not you wish to use the new [[Ct#Member|member]] auth strings, which contain a variety of information and are designed to prevent unwanted [[Ct#Upsell|upsell]] attempts by outside sources.
+
As of [[NATS]] version 4.1, Upsell Plus offers additional features that you can use to secure your member upsells. Member authentication strings allow you to require a verification string with member upsell submissions in order to prevent unwanted upsell attempts from outside sources, and traffic throttling allows you to prevent unwanted repeated access to your Upsell Plus pages.
 +
 
 +
=== Authentication Strings ===
 +
 
 +
This feature is disabled by default. If you want to enable this feature for your Upsell Plus transactions, enable the '''MEMBER_STRING_AUTH_UPSELLPLUS''' setting in the "Security" section of the [[NATS4 Configuration Admin|Configuration Admin]].
  
This feature will be set to off by default. If you want to enable this feature for your Upsell Plus transactions, you can add the following necessary code to the ''config.php'' script on your [[NATS]] server:
+
Once you have activated this setting, use the GET /member/authstring REST API endpoint to get the correct auth string for the member you want to process an upsell for. Please see our '''[[NATS4 REST API Get Member Auth String|REST API Get Member Auth String]]''' wiki article for more information on this process.
  
 +
This function will return the necessary auth string for the member to authenticate their Upsell Plus attempts. Include this auth string in the link for your member as shown in the example below:
 
<pre>
 
<pre>
$config['MEMBER_STRING_AUTH_UPSELLPLUS'] = 1;
+
https://<linkdomain>/signup/upsellplus.php?site=<siteid>&username=<username>&authstring=<authstring>
 
</pre>
 
</pre>
  
This will activate the ''MEMBER_STRING_AUTH_UPSELLPLUS'' setting to use additional security for your [[Ct#Member|member]] authorization strings. Do not add the provided code if you want to leave this feature disabled.
+
=== Throttling ===
 +
 
 +
Throttling is a security setting available in NATS 4.1 that allows you to temporarily lock out incoming traffic from a specific IP address if they submit too many requests to certain pages in NATS.
 +
 
 +
You can use the Throttling feature to help secure your ''upsellplus.php'' page, preventing surfers from forcing transactions without the correct auth string. Throttling settings are available in the "Security" section of the Configuration Admin.
 +
 
 +
Please visit our '''[[Throttling]]''' wiki article for general information about this feature.
 +
 
 +
== 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/upsellplus.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
  
Once you have activated this setting, use the ''get_member_upsell_string'' API call to get the correct auth string for the [[Ct#Member|member]] you want to process an [[Ct#Upsell|upsell]] for. Please see our '''[[NATS4 API Get Member Upsell String|API Get Member Upsell String]]''' wiki article for more information on this process.
+
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)
  
This function will return the auth string necessary for [[Ct#Member|members]] to get authenticated for the Upsell Plus process. Include the auth string in the link for your [[Ct#Member|member]], and they will be able to purchase memberships for other [[Ct#Site|sites]] using Upsell Plus with the ''MEMBER_STRING_AUTH_UPSELLPLUS'' security setting.
+
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)
  
<pre>
+
=== Ordering Flags ===
http://<linkdomain>/signup/upsellplus.php?site=<siteid>&username=<username>&authstring=<authstring>
+
These flags are used to order matching subscriptions on the page_choose_subscription template
</pre>
 
  
=== Throttling ===
+
* prefer_active => show active subscriptions first (default)
 +
* prefer_expired => show expired subscriptions first
  
Throttling is a security setting available in [[NATS]] 4.1, which allows you to lock out [[Ct#Surfer|surfers]] for a specified period of time if they make too many attempts on certain pages in [[NATS]].
+
=== Limit Flags ===
 +
These flags are used to return only 1 subscription
  
You can use the Throttling feature to help secure your ''upsellplus.php'' page, preventing [[Ct#Surfer|surfers]] from forcing transactions without the correct auth string. Just go to the "Security" configuration page to do so, which can be found in the [[NATS4 Configuration Admin|Configuration Admin]].
+
* 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
  
For more information on this feature please see our '''[[Throttling]]''' wiki article.
 
  
 
[[Category:NATS4 Upsells]]
 
[[Category:NATS4 Upsells]]

Latest revision as of 05:21, 21 September 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
Upsells Admin
The Upsells Admin
Configuring Cross Sells
Configuring Upsells
Cross Sell Supported Billers
Upsell Supported Billers
Process Gateway Cross Sales Outside NATS
Cross Sells: A to Z
Upsells: A to Z
Upsell Plus
Setting Rules

Upsell Plus is a feature in NATS4 that allows you to offer your members incentives to sign up for other sites after they have joined one of your sites. In order to complete the Upsell Plus process, the member will have to click on a link that you provide for them.

Creating an Upsell Link

If you want to offer the Upsell Plus feature to your members, first create an upsell in the Upsells Admin, then provide your member with a link to your Upsell Plus option. This supports one of two link formats:

Preferred format:

  • https://<linkdomain>/signup/upsellplus.php?site=<siteid>&username=<username>
    • Siteid and Username is the preferred method

Alternative format:

  • https://<linkdomain>/signup/upsellplus.php?memberid=<memberid>&natssess=<nats_session>&site=<siteid>


For all links, replace <linkdomain> with the linkdomain of the site that is offering this upsell and <siteid> with the site ID this member has already joined under. Replace <memberid>, <nats_session>, and <username> in the above examples with the member ID, session ID, and username of the member, respectively. Although both of the example formats will work with Upsell Plus, the first format is preferred.

You can also specify multiple sites to check through (to use with network member sites, for example):

  • https://<linkdomain>/signup/upsellplus.php?siteids=<siteid>,<siteid2>,<siteid3>&username=<username>

Optional Variables

Upsell Plus supports the use of additional variables to get certain effects from your Upsell Plus sales:

  • If you want members to be automatically submitted for upsells, add &upsellid=<upsellid>&email=<email>&submit=1 to the end of the Upsell Plus URL. Replace <email> with the e-mail address of the member and <upsellid> with the Outgoing Upsell ID of the upsell to purchase, found in the Upsells Admin.
  • If you want any of the available upsell options on the join form to be pre-checked, add &upsellids=<upsellid_list> to the end of the Upsell Plus URL. Replace <upsellid_list> with a comma-separated list of ID numbers for the upsell options you want to be automatically checked.
  • Some billers also support passing additional custom variables by adding &member_extra[<upsellid>][<customvariable>]=<customvalue> to the Upsell Plus URL. Billers that currently support this are:
  • To use autocampaigns with internal upsells, add &autocamp=campaign to the Upsell Plus URL. NOTE: For this to work, you must set $config['ALLOW_REQUEST_AUTOCAMP']=1 in your config.php file and add "autocamp" as a hidden variable in the gateway_upsell and thirdparty_upsell templates: <input type="hidden" name="autocamp" value="{$smarty.request.autocamp}">
  • To save custom fields to the member record that will be created for the upsell, send the value in member_extra[custom{x}], where {x} is a number from 1-10
    • <input type=hidden name=member_extra[custom1] value={some_custom_value}>

Redirect and Postback URLs

As of NATS version 5.0.2.7, Upsell Plus supports overriding approval and denial redirect urls as well as additional approval and denial postback urls. This feature will work for any biller that does not require a redirect to their system to complete the upsell process. To use this feature, you will need to add the additional[] array to your /signup/upsellplus.php link. For example, adding &additional[approvalurl]=https://somedomain.com/somepage.html will redirect the member to the https://somedomain.com/somepage.html url if ANY of the upsells are successful instead of showing the NATS page_upsell_approval template. Here are all of the available variables:

  • additional[approvalurl]=<url>?<query_string> - url to redirect to if ANY of the upsells are successful
  • additional[denialurl]=<url>?<query_string> - url to redirect to if NONE of the upsells are successful
  • additional[approvalposturl]=<url>?<post_data> - url to send a post to if ANY of the upsells are successful (this is in addition to not instead of the postback url defined in the NATS site admin)
  • additional[denialposturl]=<url>?<post_data> - url to send a post to if NONE of the upsells are successful (this is in addition to not instead of the postback url defined in the NATS site admin)

In order to use this feature, you need to set the signature password via the ADDITIONAL_SIGN_KEY config setting on the config admin -> surfer page in the one click systems section, sign the additional array in the url and provide the signature (additional[signature]=<signature>) in your request. Also, please make sure to remove the signature password value (additional[password]) from your request. Here is an example script.

<?php

$data = Array();
$data['additional'] = Array();
$data['additional']['password'] = '<value of the ADDITIONAL_SIGN_KEY config setting>';
$data['additional']['approvalurl'] = '<value>';
$data['additional']['denialurl'] = '<value>';
$data['additional']['approvalposturl'] = '<value>';
$data['additional']['denialposturl'] = '<value>';

ksort($data['additional']);
$dataString = implode('~~~', $data['additional']);
$data['additional']['signature'] = hash('sha512', $dataString);

unset($data['additional']['password']);

$query = http_build_query($data);

You will also need to make sure you have the following code on your upsellplus templates

{if !empty($additionalData) && is_array($additionalData)}
	{foreach from=$additionalData key=additional_key item=additional_val}
		<input type="hidden" name="additional[{$additional_key|escape:'htmlall'}]" value="{$additional_val}"/>
	{/foreach}
{/if}

Site Templates

Once you have set up your upsell options, your Upsell Plus URL, and any optional variables you wish to add to the process, you will need to modify new site templates if you want to customize the design of the Upsell Plus pages visited by your members:

  • gateway_upsell - Displayed to the member when they click an upsellplus link if their original subscription was purchased through a gateway biller
  • thirdparty_upsell - Displayed to the member when they click an upsellplus link if their original subscription was purchased through a third-party biller
  • page_upsell_approval - Displayed to the member if their upsell is approved
  • page_upsell_denial - Displayed to the member if their upsell is denied

There is also a _mobile version for each of the above templates, which is displayed to the member if NATS detects they are using a mobile device.

Additional Settings

As of NATS version 5.0.2.7, you can (optionally) enable the UPSELLPLUS_SKIP_HIDDEN_JOIN_OPTIONS configuration setting on the config admin -> surfer page in the 'one click systems' section to prevent NATS from showing hidden join options on the /signup/upsellplus.php page unless that join option is passed in via the upsellid or the upsellids variables. This feature has no impact on processing, only on display.

Additional Security

As of NATS version 4.1, Upsell Plus offers additional features that you can use to secure your member upsells. Member authentication strings allow you to require a verification string with member upsell submissions in order to prevent unwanted upsell attempts from outside sources, and traffic throttling allows you to prevent unwanted repeated access to your Upsell Plus pages.

Authentication Strings

This feature is disabled by default. If you want to enable this feature for your Upsell Plus transactions, enable the MEMBER_STRING_AUTH_UPSELLPLUS setting in the "Security" section of the Configuration Admin.

Once you have activated this setting, use the GET /member/authstring REST API endpoint to get the correct auth string for the member you want to process an upsell for. Please see our REST API Get Member Auth String wiki article for more information on this process.

This function will return the necessary auth string for the member to authenticate their Upsell Plus attempts. Include this auth string in the link for your member as shown in the example below:

https://<linkdomain>/signup/upsellplus.php?site=<siteid>&username=<username>&authstring=<authstring>

Throttling

Throttling is a security setting available in NATS 4.1 that allows you to temporarily lock out incoming traffic from a specific IP address if they submit too many requests to certain pages in NATS.

You can use the Throttling feature to help secure your upsellplus.php page, preventing surfers from forcing transactions without the correct auth string. Throttling settings are available in the "Security" section of the Configuration Admin.

Please visit our Throttling wiki article for general information about this feature.

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/upsellplus.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