+1 202 960 7076
+1 202 960 7076
26-Feb-2016 16:50

# Case study: automatic bonus recharge

The history

The client is using a brand new SIM-cards. To make calls termination with this card profitable he needs to request the bonuses from GSM-operator. Bonus price is 4000 units. Before cards will request bonuses they should not make any calls. After bonus will expire, the client needs to make same procedure: recharge the cards, request bonuses and then calls until bonus limit will exceed.

Solution

STEP 1: RECHARGING

• Needs:

GoAntiFraud service can make auto-recharge via USSD requests.

The amount of 1 voucher card is 1000, so we need simply request for recharge 4 times (1000 x 4) to have an ability to request bonuses.

• Implementation:

We need to create USSD-request for recharge and assign it to the tariff with no calls allowed until the balance tops 4000 units.

After the balance is OK we need to set another USSD-request logic. We can split this logic into two steps USSD responses:

• First: balance is lower than 4000 units -> no changes / update balance and request again;
• Second: balance is higher than 4000 units -> switch the tariff to another one and request for bonuses.

Simply we just need to add 2 cases and handle it with different actions

Example: USSD response on recharge request looks like this:

Your balance was recharged by 1000;

Current balance is 2800;

*** etc. etc. etc. ****

Using the capabilities of regular expression we can split the response with different balance values on 2 cases:

([\w\W])*Current balance is (?P<sim__balance>-?[1-9]?[4-9]\d\d\d+(\.\d*)?)([\w\W])*

In first case balance parsing will be unsuccessful if the balance is lower than 4000 units.

([\w\W])*Current balance is (?P<sim__balance>-?(([1-3]\d{3}|[0-9]{1,3}\))(\s*|\.\d*)?)([\w\W])*

– In second case balance parsing will fail if the balance is higher than 4000 units.

! If you don’t know how to use regular expression template engine our specialist can help you with it!

So cases will look like this:

Success case balance is higher than 4000 -> switch the tariff

Unsuccessful case balance is still lower than 4000 -> request recharge again.

Ok let's save this USSD-requests and assign them to tariff with recharge requests.

First we need to create recharge:

And assign it to START tariff with no calls:

STEP 2: REQUEST FOR BALANCE

We need to create another tariff with no calls. The main purpose is to request the bonus.

So we need to create empty tariff with one option:

For this option, we need to assign bonus request.

Example: If response looks like this:

You have 1000 minutes till 2016-02-25

Then USSD editor will look like this:

So after the bonus is now available we are switching to third tariff WORK and it will handle our main calls while bonuses are available.

STEP 3: ROLLBACK

Only one moment we have left: when bonus has expired and we need to switch back to START. We can do this just like other cases.

We need to take unsuccessful responses and switch them to tariff START.

Example: When bonuses are were gone you will get response from carrier like this

No bonuses left.

To request a bonus send *222#

Price is 4000

***etc.etc.etc.***

USSD Editor will look like this:

So we have an extensible and flex logic to implement any of your needs.

Have fun :)

You don't know how to use this case?

– Fill in an application form for a free webinar and we will instruct you! Or you can start your presentation right now in our chat.

Start UP Light - \$1300
Start UP - \$1900
DeLuxe - \$5600
DeLuxe Plus - \$6700
Ultimate - \$10500
45545
5/5
2