Signup Plus
Signup Plus is a feature in NATS4 that allows you to reactivate a member's subscription, or to repurchase a non-recurring subscription.
You will need to provide your users with a signup plus link:
http://<linkdomain>/signup/signupplus.php?site=<siteid>&username=<username>
Replace <linkdomain> with the site's actual linkdomain, then replace <siteid> with the site's NATS site I.D. number. Finally you must replace <username> with the user's NATS username.
Multiple Subscriptions
If the parameters passed in the signupplus link match multiple subscriptions, a page will display to allow the surfer to choose which subscription they want to manage.
To customize the look and feel of this page, you can edit the site templates: "page_choose_subscription"/"page_choose_subscription_mobile"
Verifying User
Once the surfer has a single subscription targeted, a page will display asking them to verify their email address in order to reactivate/repurchase.
To customize the look and feel of this page, you can edit the site templates: "gateway_signupplus"/"gateway_signupplus_mobile" and "thirdparty_signupplus"/"thirdparty_signupplus_mobile"
The template used for the surfer will be determined by what type of biller they signed up with originally.
Additional Security
Signup Plus also contains additional security features, which allow you to further secure the transactions occurring on your Signup Plus forms. For example, you can use API calls to get secure member authorization strings, verify surfer information on the Signup Plus form, and change the input source to use POST instead of GET.
MEMBER_STRING_AUTH_SIGNUPPLUS
Use the MEMBER_STRING_AUTH_SIGNUPPLUS 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 subscription purchase attempts by outside sources.
This feature will be set to off by default. If you want to enable this feature for your Signup Plus transactions, you can add the following necessary code in the config.php script on your NATS server:
$config['MEMBER_STRING_AUTH_SIGNUPPLUS'] = 1;
This will activate the MEMBER_STRING_AUTH_SIGNUPPLUS 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 Signup Plus process. Include the auth string in the link for your member, and they will be able to use the Signup Plus feature with the MEMBER_STRING_AUTH_SIGNUPPLUS security setting enabled.
http://<linkdomain>/signup/signupplus.php?site=<siteid>&username=<username>&authstring=<authstring>
Signup Plus Form Verification
You can also add additional security checks on your Signup Plus form. The Signup Plus feature verifies member e-mail addresses by default, but you can add a switch to choose between verifying a member's e-mail address, password, or both e-mail address and password. If you want to enable this feature for your Signup Plus transactions, you can add the following necessary code in the config.php script on your NATS server:
$config['SIGNUPPLUS_REQUIRED_FIELDS'] = 0;
Add this setting with a value of '1' if you want Signup Plus to verify member passwords. Change this to a value of '2' if you want Signup Plus to verify both member passwords and e-mail addresses. Do not add the provided code if you only want to verify member e-mail addresses.
This allows you to choose what member information you want to authenticate on the Signup Plus form itself, preventing anyone from submitting a Signup Plus form with an incorrect e-mail address, password, or both.
Using $_POST
Signup 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 Signup Plus form transactions, add the following code to your config.php script:
$config['SIGNUPPLUS_POST_ONLY'] = 1;
Add this setting with a value of '1' if you want Signup 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 signupplus.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 Signupplus integration via a backend call. Only the following billers that have a NATS Signupplus integration via a redirect have this functionality
Epoch - 5.0.2.7
SegPay - 5.0.2.7
Rocketgate - 5.0.2.7
Rocketgate Native- 5.0.2.7
As of version 5.0.2.7, NATS allows you to send subscription pass through data for reactivation transactions. 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 signupplus.php link.
&member_extra[0][subscription_passthrough2]=<your value here>
You will also need to make sure that your Signupplus 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}
Additionally, you can use the SIGNUPPLUS_INHERIT_SUBSCRIPTION_PASSTHROUGH_DATA config setting (config admin -> surfer page, one-click systems section) to tell NATS how to deal with the subscription pass through variables.
Do Not Inherit (default) | blank out existing subscription pass through values, only use the values from the member_extra array |
Inherit and Override | override subscription pass through values with the values from the member_extra array |
Inherit and Override blank values | override subscription pass through values with the values from the member_extra array only if the existing value is blank (0 is not blank) |
Inherit Only | do not update the subscription pass through values, 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/signupplus.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
- 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
- least_recently_accessed_only => return only the least recently created/updated subscription