Fortumo is an international mobile payment provider and it provides mobile operator billing service. First understand how Fortumo works.
- Fortumo sdk is integrated into the app.
- User purchases digital goods from the developer by confirming the payment with their mobile phone and charging the amount to their phone bill.
- Fortumo checks its list of 300 operators to see where to send the payment request and forwards it to the correct operator.
- The operator checks if the user has enough money to make a mobile payment and sends information back to Fortumo.
- When everything is OK, Fortumo completes the transaction and lets the developer know to transfer digital goods to the user. At the end of the month, all payments are transferred to the developer.
Hence in order to test Fortumo in-app purchase you need to have a SIM card inserted into the device on which you want to test.The SIM card acts as center point in connection between user, operator and Fortumo. Also sometimes SMS are also exchanged between user and operator while making Fortumo payment.
In AVD fortumo is working fine with the application.
The android emulator(AVD) provides various emulation like telephony emulation, SMS emulation and many more. So when you run the application on AVD the android emulates the sim card providing the SMS emulation as well . Hence you don't get the "Widget Fallback is disabled while in sandbox mode"
toast on AVD.
how can I run fortumo in sandbox mode exactly as I am running it on my
AVD(Android Virtual device).
Just insert a SIM card in your device and run the code. It will work fine.
UPDATE :
Using Fortumo on devices without a SIM card.
When using Fortumo on tablets without a SIM card,widget-fallback will happen.
A website is loaded where you are asked to enter your phone number, then you receive instructions to send a keyword to a certain number. After sending this message, users have to wait a few seconds until their payment was accepted, then the website will stop loading/waiting, return to your app, and the MESSAGE_STATUS_BILLED broadcast is sent.
Supporting Tablets
<!-- If your app doesn't need to make phone calls, you can add this, so the app
could be installed on tablets. -->
<uses-feature android:name="android.hardware.telephony" android:required="false" />
Reference
UPDATE 2:
If sim card is not inserted web-window is shown for payments.However it works only in live mode.
For some countries only web-window payments are supported. It works only in live mode, too.