Samsung In App Purchase v2.0 Programming Guide

Size: px
Start display at page:

Download "Samsung In App Purchase v2.0 Programming Guide"

Transcription

1 Samsung In App Purchase v2.0 Programming Guide

2 Revision History Version Description Author Date 1.0 Created Security-related content added Mode parameter added to getitemlist method Added IAP 2.0 restrictions, and upgrade checks and follow-up actions for getitemlist and Init() methods Added Codes Added data to check terms for short term subscriptions Added response code Added description on development mode,

3 Table of Contents 1 Samsung In App Purchase v IAP 2.0 Restrictions Product Purchase Product Type Creating an IAP Link Adding the IAP Library Adding Permissions Installing IAP and Authorizing Samsung Account Creating ServiceConnection and Binding IAPConnector Processing the IAP Request and Response with IAPConnector Development mode init() method getitemlist() method getitemsinbox() method Payment IAP Reference API Reference init method getitemlist method getitemsinbox method PaymentMethodListActivity Response Code... 27

4 1 Samsung In App Purchase v2.0 IAP (In-App Purchase) v2.0 lets you use Samsung s payment services inside apps. While v1.0 linked to the library jar file, v2.0 uses the AIDL (Android Interface Definition Language) to help the IAP process and applications communicate with each other. The latter makes it easier to link than the former. 1.1 IAP 2.0 Restrictions IAP is supported on Android API 10 and higher. It does not run properly on lower versions. It only runs on Samsung devices. There are no other restrictions. 1.2 Product Purchase The below figure shows the process where an application uses IAP to request the purchase of a product. 1 Proceed with the Samsung account authorization process. 2 Bind IAPConnector to enable the IAP API.

5 3 Call the init() method start resetting IAP and receive the results as a bundle. 4 Call the getitemlist() method to receive a list of purchasable products as a bundle. 5 Select a product to purchase and call the startactivityforresult() method to call an activity (PaymentMethodListActivity) for selecting a payment method. Then, receive the results as a bundle in the onactivityresult() method. 6 Call the getitemsinbox() method to receive a list of purchased products as a bundle. 7 When the entire process ends, unbind IAPConnector to finish using IAP. Note: You can use the product list without user authentication or resetting. This means the getitemlist() method does not require you to log in before you place products to sell in apps. 1.3 Product Type IAP supports the following product types. Type Consumable Product Non-Consumable Product Subscription (short-term product) All Description If you purchase and use this type of product, it is consumed. You need to repurchase it to use it again. * e.g. Consumable products such as bullets in games. If you purchase this type of product, you can keep using it permanently. You cannot repurchase it. * e.g. Non-consumable products such as a book that you do not have to purchase again. Products that you can repurchase after a certain period of time. * e.g. Products such as monthly magazines and short-term passes that can be repurchased after a certain time. All of the three types above are included.

6 2 Creating an IAP Link In order to use the IAP payment service in an application, you must follow the steps below. 1 Add the IAP library. 2 Add permissions. 3 Install IAP and authorize your Samsung account. 4 Create a ServiceConnection and bind it to IAPConnector. 5 In the application, request IAP with IAPConnector and process the response. 2.1 Adding the IAP Library The 'IAPConnector.aidl' and 'IAPServiceCallback.aidl' files are AIDL (Android Interface Definition Language) files with the IAP interfaces defined. They use the IPC (Inter-Process Communication) method to provide interfaces for linking with the IAP process. In order to link with IAP, add these files to your application projects as below. If you use Eclipse: Step 1) Create a package with the name 'com.sec.android.iap' under the src folder of the application project that will use IAP. Step 2) Copy the 'IAPConnector.aidl' and 'IAPServiceCallBack.aidl' files under the 'com.sec.android.iap' package. If you do not use Eclipse: Step 1) Create a folder with the structure 'src/com/sec/android/iap'. Step 2) Copy the files 'IAPConnector.aidl' and 'IAPServiceCallBack.aidl' in the new folder. Step 3) Use the Ant tool to build a project and create the 'IAPConnector.java' and 'IAPServiceCallback.java' files. Through the process above, create the 'IAPConnector.java' and 'IAPServiceCallback.java' files that were created in the application project '/gen' folder. 2.2 Adding Permissions In order to use IAP, you must register the "com.sec.android.iap.permission.billing" permission in the AndroidManifest.xml file. Add the permission to AndroidManifest.xml as below. <uses-permission android:name="com.sec.android.iap.permission.billing"/>! If you do not register the permission, it will always fail in the next step, the Samsung account authorization process

7 2.3 Installing IAP and Authorizing Samsung Account Checking IAP installation public boolean isinstallediappackage( Context _context ) PackageManager pm = _context.getpackagemanager(); try pm.getapplicationinfo( "com.sec.android.iap", PackageManager.GET_META_DATA ); return true; catch( NameNotFoundException e ) e.printstacktrace(); return false; If the flag value in the above code is true, it means that IAP is already installed. If it is false, it means IAP is not installed. If IAP is installed: Test the validity of the installed IAP by comparing the signature hash codes of the IAP package. private static final int IAP_SIGNATURE_HASHCODE = 0x7a7eaf4b; public boolean isvalidiappackage( Context _context ) boolean result = true; try Signature[] signs = getpackagemanager().getpackageinfo( "com.sec.android.iap" PackageManager.GET_SIGNATURES ).signatures; if( sigs[0].hashcode()!= IAP_SIGNATURE_HASHCODE ) result = false; catch( Exception e ) e.printstacktrace(); result = false; return result;

8 If the validity test of the installed IAP reveals that the IAP is not valid, a message dialog must be displayed as shown below, and the payment process must not proceed any further. // If the installed IAP package is not valid: // ================================================================ if( false == isvalidiappackage( _activity ) ) new AlertDialog.Builder( _activity ).settitle( R.string.in_app_purchase ).setmessage( R.string.invalid_iap_package ).setpositivebutton( android.r.string.ok, new public void onclick( DialogInterface dialog, int which ) dialog.dismiss(); _activity.finish(); ).show(); // ================================================================ If the installed IAP is valid, proceed with the Samsung account authorization process as below. You can move on to the next step if the account is successfully authorized. // If the installed package is valid: // ================================================================ else ComponentName com = new ComponentName( "com.sec.android.iap", "com.sec.android.iap.activity.accountactivity" ); Intent intent = new Intent(); intent.setcomponent( com ); startactivityforresult( intent, 1001 ); // ================================================================ Call the IAP AccountActivity to authorize the Samsung account. AccountActivity is used to authorize your Samsung account and reconfirm your password when you make a payment. When you call AccountActivity, the application uses the startactivityforresult method to call it, and IAP returns the Samsung account authorization results to the onactivityresult method in the application. onactivityresult protected void onactivityresult(int _requestcode, int _resultcode, Intent _intent) if( _requestcode == 1001 ) if( _resultcode == RESULT_OK ) /* Login successful */

9 If IAP is not installed: To install IAP, go to the IAP details page at Samsung Apps. static final int FLAG_INCLUDE_STOPPED_PACKAGES = 32; Intent intent = new Intent(); intent.setdata( Uri.parse( "samsungapps://productdetail/com.sec.android.iap" ) ); // For Honeycomb MR1 or higher, add the FLAG_INCLUDE_STOPPED_PACKAGES flag. if( Build.VERSION.SDK_INT >= 12 ) intent.addflags( Intent.FLAG_ACTIVITY_NEW_TASK Intent.FLAG_ACTIVITY_CLEAR_TOP FLAG_INCLUDE_STOPPED_PACKAGES ); else intent.addflags( Intent.FLAG_ACTIVITY_NEW_TASK Intent.FLAG_ACTIVITY_CLEAR_TOP ); startactivity( intent ); 2.4 Creating ServiceConnection and Binding IAPConnector To communicate with IAP in applications, you must create a ServiceConnection. Please follow the steps below. 1 Binding IAPConnector 2 Unbinding When Closing an Application 1 Binding IAPConnector To connect to IAP in applications, implement ServiceConnection in an Activity and bind IAPConnector. After creating ServiceConnection, use the overridden methods onservicedisconnected and onserviceconnected to refer to IAPConnector instances. IAPConnector miapconnector; ServiceConnection mserviceconn = new public void onservicedisconnected( ComponentName name ) miapconnector = null; public void onserviceconnected( ComponentName name, IBinder service ) miapconnector = IAPConnector.Stub.asInterface( service );

10 Bind using the bindservice method that has the intent that is referred to for IAP service names and created ServiceConnection objects as parameters. Intent serviceintent = new Intent( "com.sec.android.iap.service.iapservice" ); bindservice( serviceintent, mserviceconn, Context.BIND_AUTO_CREATE ); When you complete the process above, you can use miapconnector to communicate with IAP. 2 Unbinding When Closing an Application You must unbind IAP when closing applications. If IAP is no longer needed, you must unbind the mserviceconn Service Connection object.. unbindservice( mserviceconn ); 2.5 Processing the IAP Request and Response with IAPConnector IAP provides the interfaces below. Type Name Description Method init Setting and resetting of information for using payment services. Method getitemlist List of products. Method getitemsinbox List of purchased products. Activity PaymentMethodListActivity Activity for selecting a payment method and requesting payment. Each interface is described in detail below. Development mode Testing of the payment service is not easy due to fee charging. So, IAP supports a developer mode which allows testing in various situations. Each interface provided by IAP has a mode parameter in the form of an integer. You can set development mode by changing this value. The below are the modes supported by IAP. Mode Value Description Live (production) mode 0 This is the mode for production. When releasing your app, you must use this mode. Actual payment occurs only in production mode. Test mode (success) 1 This test mode always returns successful results. Test mode (failure) -1 This test mode always returns failed results. During development, you should test your app in various situations by setting the value to 1 and -1

11 which will always return successful and failed results respectively. Before releasing your app, however, you must change the mode to production mode. If you release your app in test mode, no payment will occur. There have been cases where developers released their apps in developer mode. So, we implemented a pop-up window that notifies you if developer mode is in use. If you see this message, please check your mode. Each interface is described in detail below. 1 init() method This must be called before you use any IAP services, including 'List of products', 'List of purchased products', and 'Payment'. After the Samsung account is successfully authorized, call the init() method to set basic required payment information. The init() method sets up the following basic information to use in IAP: IAP upgrade check, server URL, country code, shop ID, currency (currency unit) information, user ID, and .

12 Note: If you call the init() method on the main thread, an ANR (Application Not Responding) might occur. Create a separate thread to avoid the error. Bundle bundle = miapconnector.init( mmode ); if ( null!= bundle ) int statuscode = bundle.getint( "STATUS_CODE" ); String errorstring = bundle.getstring( "ERROR_STRING" ); // The address of the destination page is delivered with the IAP_UPGRADE_URL keyword when statuscode is String extrastring = bundle.getstring( "IAP_UPGRADE_URL" ); if ( statuscode == 0 ) /* If initialization is successful */ if ( statuscode == ) /* IAP Package Upgrade Process when needed. */ // Display a pop-up window about upgrades. When the user clicks OK, direct the user to the Samsung Apps IAP page. new AlertDialog.Builder( this ).settitle("iap Upgrade" ).setmessage( errorstring ).setpositivebutton( android.r.string.ok, new public void onclick( DialogInterface dialog, int which ) Intent intent = new Intent(); intent.setdata( Uri.parse( extrastring ) ); intent.addflags( Intent.FLAG_ACTIVITY_NEW_TASK ); try ).show(); startactivity( intent ); catch( ActivityNotFoundException e ) e.printstacktrace(); If 'STATUS_CODE' is '0', the initial setup has successfully completed and you can use the services, including 'List of products', 'List of purchased products', and 'Payment'. Note: If statuscode is in the sample code above, the IAP package needs to be updated. If it does not get updated, you cannot use IAP. Therefore, you must add the process that encourages updating through the IAP page of Samsung Apps.

13 2 getitemlist() method This returns the List of purchasable products as a bundle. Note: If you call the getitemlist() method on the main thread, an ANR (Application Not Responding) might occur. Create a separate thread to avoid the error. Bundle bundle = miapconnector.getitemlist( mmode, getpackagename(), _itemgroupid, _startnum, _endnum, _itemtype ); Information about whether the request was successful or not is saved in 'STATUS_CODE', the key value of the returned bundle. (If successful, '0'.) If STAUS_CODE is -1001, the IAP package needs to be updated. Please refer to the earlier part about how to process the results of the init() method sample code. Using RESULT_LIST inside a Bundle int statuscode = bundle.getint( "STATUS_CODE" ); if ( statuscode == 0 ) ArrayList<String> arraylist = bundle.getstringarraylist( "RESULT_LIST" ); for( String itemstring : arraylist ) JSONObject jobject = new JSONObject( itemstring ); String itemid = jobject.getstring( "mitemid" ); String itemname = jobject.getstring( "mitemname" ); String itemprice = jobject.getstring( "mitemprice" ); String currencyunit = jobject.getstring( "mcurrencyunit" ); String itemdesc = jobject.getstring( " mitemdesc" ); String itemimageurl = jobject.getstring( "mitemimageurl" ); String itemdownloadurl = jobject.getstring( "mitemdownloadurl" ); String reserved1 = jobject.getstring( "mreserved1" ); String reserved2 = jobject.getstring( "mreserved2" ); String type = jobject.getstring( "mtype" ); 3 getitemsinbox() method This returns the List of purchased products as a bundle. Note: If you call the getitemsinbox() method on the main thread, an ANR (Application Not Responding) might occur. Create a separate thread to avoid the error. Bundle itemsinboxlist = miapconnector.getitemsinbox( mcontext.getpackagename(), _itemgroupid, _startnum, _endnum, _startdate, _enddate ); Information about whether the request was successful or not is saved in 'STATUS_CODE', the key value of the returned bundle. (If successful, '0'.)

14 Using RESULT_LIST inside a Bundle int statuscode = bundle.getint( "STATUS_CODE" ); if ( statuscode == 0 ) ArrayList<String> arraylist = bundle.getstringarraylist( " RESULT_LIST" ); for ( String itemstring : arraylist) JSONObject jobject = new JSONObject( itemstring ); String itemid = jobject.getstring( "mitemid" ); String itemname = jobject.getstring( "mitemname" ); String itemdesc = jobject.getstring( " mitemdesc " ); String itemprice = jobject.getstring( "mitemprice" ); String currencyunit = jobject.getstring( " mcurrencyunit " ); String itemimageurl = jobject.getstring( " mitemimageurl " ); String itemdownloadurl = jobject.getstring( " mitemdownloadurl " ); String purchasedate = jobject.getstring( " mpurchasedate " ); long timeinmillis = Long.parseLong( jobject.getstring( "mpurchasedate" ) ); String paymentid = jobject.getstring( "mpaymentid" ); String reserved1 = jobject.getstring( "mreserved1" ); String reserved2 = jobject.getstring( "mreserved2" ); String type = jobject.getstring( "mtype" ); String itempricestring = jobject.getstring( "mitempricestring" ); 4 Payment Make the process so that you can go to the IAP Payment Activity where you can pay for a product. Bundle bundle = new Bundle(); bundle.putstring( "THIRD_PARTY_NAME", getpackagename() ); bundle.putstring( "ITEM_GROUP_ID", _itemgroupid ); bundle.putstring( "ITEM_ID", _itemid ); ComponentName com = new ComponentName( "com.sec.android.iap", "com.sec.android.iap.activity.paymentmethodlistactivity" ); Intent intent = new Intent( Intent.ACTION_MAIN ); intent.addcategory( Intent.CATEGORY_LAUNCHER ); intent.setcomponent( com ); intent.putextras( bundle ); startactivityforresult( intent, 1000 ); When you call the IAP Payment Details Activity, the application uses the startactivityforresult method to call it, and IAP returns the payment results in the application s onactivityresult method. onactivityresult method Data for the payment intent s 'RESULT_OBJECT' key is returned as a JSON string as illustrated below.

15 "mitemdesc":"learn about the books of the Bible##46;", "mcurrencyunit":" ", "mitemimageurl":" _NEW_WEB_ICON.png", "mitemdownloadurl":"", "mpaymentid":"zpmtid gbi ", "mitemprice":1, "mverifyurl":" ", "mitemname":"books", "mpurchasedate": , "mpurchaseid":" a3a cbe35bf033f59bcb6f9ec79a950ab5d83de67b3ff92f8", "mreserved1":"", "mreserved2":"", "mitemid":" ", "mitempricestring":" 1.00" You can get a desired value by creating a JSON object as below. Additional values such as STATUS_CODE, THIRD_PARTY_NAME, ERROR_STRING and ITEM_ID are included in the bundle. // 1. Processing IAP payment results: // treat result of IAPService // ============================================================================ if( _requestcode == 1 ) if( null == _intent ) return; Bundle extras = _intent.getextras(); String itemid = ""; String thirdpartyname = ""; // payment success : 0 // payment cancelled : 1 // ======================================================================== int statuscode = 1; // ======================================================================== String errorstring = ""; String purchasedata = ""; // 1) If there is bundle information transferred from IAP: // if( null!= extras ) thirdpartyname = extras.getstring( "THIRD_PARTY_NAME" ); statuscode = extras.getint( "STATUS_CODE" ); errorstring = extras.getstring( "ERROR_STRING" ); itemid = extras.getstring( "ITEM_ID" ); purchasedata = extras.getstring( "RESULT_OBJECT" ); // // 2) If there is no bundle information transferred from the IAP:

16 // else showresultdialog( getstring( R.string.dlg_title_payment_error ), getstring( R.string.msg_payment_was_not_processed_successfully ) ); // // 3) If payment is not cancelled: // If payment was not cancelled // if( RESULT_OK == _resultcode ) try JSONObject jobject = new JSONObject( purchasedata ); String paymentid = jobject.getstring( "mpaymentid" ); String itemdesc = jobject.getstring( "mitemdesc" ); String itemprice = jobject.getstring( "mitemprice" ); String currencyunit = jobject.getstring( "mcurrencyunit" ); String itemimageurl = jobject.getstring( "mitemimageurl" ); String itemname = jobject.getstring( "mitemname" ); String purchasedate = jobject.getstring( "mpurchasedate" ); long timeinmillis = Long.parseLong( jobject.getstring("mpurchasedate") ); String purchaseid = jobject.getstring( "mpurchaseid" ); String reserved1 = jobject.getstring( "mreserved1" ); String reserved2 = jobject.getstring( "mreserved2" ); String itemdownloadurl = jobject.getstring( "mitemdownloadurl" ); itemid = jobject.getstring( "mitemid" ); String itempricestring = jobject.getstring( "mitempricestring" ); String verifyurl = jobject.getstring( "mverifyurl" ); // a. If the payment result is success: // if( statuscode == 0 ) String serverurl = verifyurl + "&purchaseid=" + purchaseid; new VerifyClientToServer( serverurl, purchaseid, paymentid ).execute(); // b. If the payment result is failure: // else showresultdialog( getstring( R.string.dlg_title_payment_error ), "-itemid : " + itemid + "\n-thirdpartyname : " + thirdpartyname + "\n-statuscode : " + statuscode + "\n-errorstring : " + errorstring ); // catch( JSONException e ) e.printstacktrace(); //

17 // 4) If payment is canceled: // If payment was cancelled // else if( RESULT_CANCELED == _resultcode ) showresultdialog( getstring( R.string.dlg_title_payment_cancelled ), "-itemid : " + itemid + "\n-thirdpartyname : " + thirdpartyname + "\n-statuscode : " + statuscode ); // // ============================================================================ In order to prevent problems caused by sniffing apps during payment result processing, use the mverifyurl and mpurchaseid values in the bundle that came as a result, to check if the payment is valid for the IAP server. For that purpose, VerifyClientToServer AsyncTask is run in the above example. Below is source code for VerifyClientToServer AsyncTask. private class VerifyClientToServer extends AsyncTask<Void, Void, Boolean> String mserverurl = null; String mpurchaseid = null; String mpaymentid = null; VerificationVO mverificationvo = null; public VerifyClientToServer ( String _strurl, String _purchaseid, String _paymentid ) mserverurl = _strurl; mpurchaseid = _purchaseid; mpaymentid = protected void onpreexecute() super.onpreexecute(); // Cancel the task if the server URL, mpurchasedid and mpaymentid are empty // ================================================================ if( true == TextUtils.isEmpty( mserverurl ) true == TextUtils.isEmpty( mpurchaseid ) true == TextUtils.isEmpty( mpaymentid) ) this.cancel( true ); // ================================================================ mprogressdialog = showprogressdialog( ItemList.this protected void oncancelled() dismissprogressdialog( mprogressdialog );

18 protected Boolean doinbackground( Void... params ) try int retrycount = 0; String strresponse = null; // For reliability, if an error occurs, retry up to 3 times. // ============================================================= do strresponse = gethttpgetdata( mserverurl, 10000, ); retrycount++; while( retrycount < 3 && true == TextUtils.isEmpty( strresponse ) ); // ============================================================= if( strresponse == null TextUtils.isEmpty( strresponse ) ) return false; else mverificationvo = new VerificationVO( strresponse ); // Only if Status Code is "true", and if PaymentId and // mpaymentid of mverificationvo match, determine as success. // ========================================================== if( mverificationvo!= null && true == "true".equals( mverificationvo.getmstatus() ) && true == mpaymentid.equals( mverificationvo.getmpaymentid() ) ) return true; // ========================================================== else return false; catch( Exception e ) e.printstacktrace(); return protected void onpostexecute( Boolean result ) dismissprogressdialog( mprogressdialog ); if( true == result ) showresultdialog(

19 getstring( R.string.dlg_title_payment_success ), "-itemid : " + mverificationvo.getmitemid() + "\n-paymentid : " + mverificationvo.getmpaymentid() ); else showresultdialog( getstring( R.string.dlg_title_payment_error ), getstring( R.string.msg_invalid_purchase ) ); private String gethttpgetdata ( final String _strurl, final int _conntimeout, ) final int _readtimeout String strresult = null; URLConnection con = null; HttpURLConnection httpconnection = null; BufferedInputStream bis = null; ByteArrayOutputStream buffer = null; try URL url = new URL( _strurl ); con = url.openconnection(); con.setconnecttimeout(10000); con.setreadtimeout(10000); httpconnection = (HttpURLConnection)con; httpconnection.setrequestmethod("get"); httpconnection.connect(); int responsecode = httpconnection.getresponsecode(); if( responsecode == 200 ) bis = new BufferedInputStream( buffer = new ByteArrayOutputStream( 4096 ); byte [] bdata = new byte[ 4096 ]; int nread; httpconnection.getinputstream(), 4096 ); while( ( nread = bis.read( bdata, 0, 4096 ) )!= -1 ) buffer.write( bdata, 0, nread ); buffer.flush(); strresult = buffer.tostring(); catch( Exception e ) e.printstacktrace(); finally if( bis!= null )

20 try bis.close(); catch (Exception e) if( buffer!= null ) try buffer.close(); catch (IOException e) con = null; httpconnection = null; return strresult; In the VerifyClientToServer example above, strresponse is JSON formatted as shown below. "itemid":" ", "itemname":"additional Game Modes", "itemdesc":"unlock all game modes. Best value!", "purchasedate":" :04:50", "paymentid":"zpmtid gbi ", "paymentamount":"1.500", "status":"true" You can receive strresponse from the server and extract a desired value, such as the creator of the verification class below. The example below is part of the VerificationVO source used as an object for saving task results in VerifyClientToServer AsyncTask. public class VerificationVO private String mitemid; private String mitemname; private String mitemdesc; private String mpurchasedate; private String mpaymentid; private String mpaymentamount; private String mstatus; public VerificationVO( String strjson ) try JSONObject jobject = new JSONObject( strjson ); mitemid = jobject.getstring( "itemid" ); mitemname = jobject.getstring( "itemname" ); mitemdesc = jobject.getstring( "itemdesc" ); mpurchasedate = jobject.getstring( "purchasedate" ); mpaymentid = jobject.getstring( "paymentid" ); mpaymentamount = jobject.getstring( "paymentamount" ); mstatus = jobject.getstring( "status" );

21 catch( JSONException e ) e.printstacktrace(); Omitted For safer transactions, it is recommended that you process tasks such as VerifyClientToServer in the above sample code through a 3 rd -party server. 3 IAP Reference This chapter provides reference information to use IAP. 3.1 API Reference This is the API defined in the 'IAPConnector.java' and 'IAPServiceCallback.java' files. 1 init method init( int mode ) This method must be called before you use IAP services, including 'List of products', 'List of purchased products', and 'Payment Details'. It returns results as a bundle. - Parameter details Parameter Type Description mode int Value for IAP mode 0: Live (production) mode 1: Development mode (returned results are true every time) -1: Development mode (returned results are false every time) - Key descriptions for returned bundle Parameter Description STATUS_CODE ERROR_STRING IAP_UPGRADE_URL Result code (If not 0, error or failure) Message in case of an error or failure URI information to navigate to the IAP package upgrade page (STATUS_CODE == -1001) at Samsung Apps when an upgrade is needed

22 - STATUS_CODE types for result bundle Response code Code value Description IAP_ERROR_NONE 0 Successful IAP_ERROR_INITIALIZATION Failure while resetting IAP IAP_ERROR_NEED_APP_UPGRADE IAP upgrade required IAP_ERROR_COMMON Error while running IAP IAP_ERROR_NETWORK_NOT_AVAILABLE Network not available IAP_ERROR_IOEXCEPTION_ERROR IO exception IAP_ERROR_SOCKET_TIMEOUT Socket timeout exception IAP_ERROR_CONNECT_TIMEOUT Connection timeout exception 2 getitemlist method getitemlist(string packagename, String itemgroupid, int startnum, int endnum, String itemtype ) This method returns the List of purchasable products as a bundle. - Parameter details Parameter Type Description mode int Value for IAP mode 0: Live (production) mode 1: Development mode (returned results are true every time) -1: Development mode (returned results are false every time) packagename String Package name of the application itemgroupid String Group ID of the product startnum int Starting number of the list to be shown endnum int Ending number of the list to be shown itemtype String Item type Consumable: 00 Non-consumable: 01 Subscription (short-term): 02 All: 10 - Key descriptions for returned bundle Parameter Description STATUS_CODE ERROR_STRING IAP_UPGRADE_URL RESULT_LIST Result code (If not 0, error or failure) Message in case of an error or failure URI information to navigate to the IAP package upgrade page (STATUS_CODE == -1001) at Samsung Apps when an upgrade is needed Product list as a JSON string

23 - STATUS_CODE types for result bundle Response code Code value Description IAP_ERROR_NONE 0 Successful IAP_ERROR_COMMON Error while running IAP IAP_ERROR_PRODUCT_DOES_NOT_E XIST IAP_ERROR_ITEM_GROUP_DOES_NOT_E XIST No product list requested No item group ID IAP_ERROR_NETWORK_NOT_AVAILABLE Network not available IAP_ERROR_IOEXCEPTION_ERROR IO exception IAP_ERROR_SOCKET_TIMEOUT Socket timeout exception IAP_ERROR_CONNECT_TIMEOUT Connection timeout exception - JSON field description for Bundle 'RESULT_LIST' Parameter Description mitemid mitemname mitemprice mcurrencyunit mitemdesc mitemimageurl mitemdownloadurl mitempricestring Product ID Product name Product price Currency Product description Product image URL Product download URL Currency + product price string mreserved1 Reserved 1 mreserved2 Reserved 2 mtype msubscriptiondurationunit msubscriptiondurationmultiplier Product type If the product type is a subscription, YEAR, MONTH, WEEK, and DAY are provided as subscription period units in capital letters. This is the product duration if the product type is a subscription. Combined with msubscriptiondurationunit, it is expressed as 1MONTH.

24 3 getitemsinbox method getitemsinbox(string packagename, String itemgroupid, int startnum, int endnum, String startdate, String enddate) method This method returns the List of purchased products as a bundle. - Parameter details Parameter Type Description packagename String Package name of the application itemgroupid String Group ID of the product startnum int Starting number of the list to be shown endnum int Ending number of the list to be shown startdate String Start date of the purchase period (e.g ) enddate String End date of the purchase period (e.g ) - Key descriptions for returned bundle Parameter Description STATUS_CODE ERROR_STRING RESULT_LIST Result code (If not 0, error or failure) Message in case of an error or failure Purchased product list as a JSON string - STATUS_CODE types for result bundle Response code Code value Description IAP_ERROR_NONE 0 Successful IAP_ERROR_COMMON Error while running IAP IAP_ERROR_ITEM_GROUP_DOES_NOT_EXIST No item group ID IAP_ERROR_NETWORK_NOT_AVAILABLE Network not available IAP_ERROR_IOEXCEPTION_ERROR IO exception IAP_ERROR_SOCKET_TIMEOUT Socket timeout exception IAP_ERROR_CONNECT_TIMEOUT Connection timeout exception

25 - JSON field description for Bundle 'RESULT_LIST' Parameter Description mitemid mitemname mitemprice mitempricestring mitemdesc mcurrencyunit mpurchasedate mpaymentid mpurchaseid mitemimageurl mitemdownloadurl Product ID Product name Product price Currency + product price Product description Currency Purchase date (in milliseconds) Payment ID Purchase ID Product image URL Product download URL mreserved1 Reserved 1 mreserved2 Reserved 2 mtype msubscriptionenddate Product type This is the product expiration date for subscription products. It is returned as a long type. 4 PaymentMethodListActivity This section explains the required bundle information and results that are delivered when the IAP payment feature is used. - Required bundle information at the time of request Parameter Type Description packagename String Package name of the application itemgroupid String Group ID of the product itemid String Product ID - Key descriptions for returned bundle Parameter Description STATUS_CODE ERROR_STRING RESULT_OBJECT ITEM_ID Result code (If not 0, error or failure) Message in case of an error or failure Payment result as a JSON string ID of the product to purchase

26 - STATUS_CODE types for result bundle Response code Code value Description IAP_ERROR_NONE 0 Successful IAP_PAYMENT_IS_CANCELED 1 Payment canceled IAP_ERROR_COMMON Error while running IAP IAP_ERROR_ALREADY_PURCHASED IAP_ERROR_WHILE_RUNNING The product is a non-consumable product and cannot be repurchased Called payment details without bundle information IAP_ERROR_PRODUCT_DOES_NOT_EXIST No product requested IAP_ERROR_CONFIRM_INBOX IAP_ERROR_ITEM_GROUP_DOES_NOT_E XIST The payment results were not successful, but the list of purchased products needs to be checked because the product could have been purchased No item group ID IAP_ERROR_NETWORK_NOT_AVAILABLE Network not available IAP_ERROR_IOEXCEPTION_ERROR IO exception IAP_ERROR_SOCKET_TIMEOUT Socket timeout exception IAP_ERROR_CONNECT_TIMEOUT Connection timeout exception - JSON field description for Bundle 'RESULT_OBJECT' Parameter Description mitemid mitemname mitemdesc mitemprice mitempricestring mcurrencyunit mpaymentid mpurchasedate mpurchaseid Product ID Product name Product description Product price Product price with currency Currency Payment ID Purchase date (in milliseconds) Purchase ID mreserved1 Reserved 1 mreserved2 Reserved 2 mitemimageurl mitemdownloadurl mverifyurl Product image URL Product download URL IAP server URL for checking if the purchase is valid for the IAP server, using the mpurchaseid value

27 3.2 Response Code The below is a list of codes for 'STATUS_CODE', the key value of the bundle returned from IAP. Response code Code value Description IAP_ERROR_NONE 0 Successful IAP_PAYMENT_IS_CANCELED 1 Payment canceled IAP_ERROR_INITIALIZATION Failure while resetting IAP IAP_ERROR_NEED_APP_UPGRADE IAP upgrade required IAP_ERROR_COMMON Error while running IAP IAP_ERROR_ALREADY_PURCHASED A non-consumable product is repurchased, or a subscription product is repurchased before it expires IAP_ERROR_WHILE_RUNNING IAP_ERROR_PRODUCT_DOES_NOT_E XIST Payment details (PaymentMethodListActivity) are called without any bundle information No product list requested IAP_ERROR_CONFIRM_INBOX No results were received after a payment request made to the server. Consequently, a list of purchased products must be checked because the payment may have been successful. IAP_ERROR_ITEM_GROUP_DOES_NOT_E XIST No item group ID IAP_ERROR_NETWORK_NOT_AVAILABLE Network not available IAP_ERROR_IOEXCEPTION_ERROR IO exception IAP_ERROR_SOCKET_TIMEOUT Socket timeout exception IAP_ERROR_CONNECT_TIMEOUT Connection timeout exception

S a m s u n g I A P a n d P r o m o t i o n a l O p p o r t u n i t i e s w i t h G a l a x y A p p s

S a m s u n g I A P a n d P r o m o t i o n a l O p p o r t u n i t i e s w i t h G a l a x y A p p s S a m s u n g I A P a n d P r o m o t i o n a l O p p o r t u n i t i e s w i t h G a l a x y A p p s A few housekeeping items: If you have any questions for the presenters, please post them in the Q&A

More information

In-app Billing Version 3

In-app Billing Version 3 13 In-app Billing Version 3 Bruno Oliveira Developer Relations, Android 13 In-app billing! 2 In-app billing! Implement ALL the billing! 2 In-app billing! DO NOT WANT 2 PREVIOUSLY IN IN-APP BILLING 3 Easy

More information

Unity SDK for Xiaomi (IAP) Unity IAP provides an easy way to integrate Xiaomi IAP with Unity.

Unity SDK for Xiaomi (IAP) Unity IAP provides an easy way to integrate Xiaomi IAP with Unity. Unity SDK for Xiaomi (IAP) 1. Overview 2. Login & Purchase Flow 2.1 Stand-alone login & purchase 2.2 Online login & purchase 3. Technical Integration 3.1 Onboarding to Unity 3.2 Server side integration

More information

Unity SDK for Xiaomi (IAP) Unity IAP provides an easy way to integrate Xiaomi IAP with Unity.

Unity SDK for Xiaomi (IAP) Unity IAP provides an easy way to integrate Xiaomi IAP with Unity. Unity SDK for Xiaomi (IAP) 1. Overview 2. Login & Purchase Flow 2.1 Stand-alone login & purchase 2.2 Online login & purchase 3. Technical Integration 3.1 Onboarding to Unity 3.2 Server side integration

More information

Services Broadcast Receivers Permissions

Services Broadcast Receivers Permissions Services Broadcast Receivers Permissions Runs in the background Extends Service Java class Not necessarily connected to the user s visual interface Music player working in foreground User wants read email

More information

Android Help. Section 8. Eric Xiao

Android Help. Section 8. Eric Xiao Android Help Section 8 Eric Xiao The Midterm That happened Any residual questions? New Assignment! Make a low-fi prototype Must be interactive Use balsamiq or paper Test it with users 3 tasks Test task

More information

Mobile Development Lecture 9: Android & RESTFUL Services

Mobile Development Lecture 9: Android & RESTFUL Services Mobile Development Lecture 9: Android & RESTFUL Services Mahmoud El-Gayyar elgayyar@ci.suez.edu.eg Elgayyar.weebly.com What is a RESTFUL Web Service REST stands for REpresentational State Transfer. In

More information

Introduction to Android Multimedia

Introduction to Android Multimedia Introduction to Android Multimedia CS 436 Software Development on Mobile By Dr.Paween Khoenkaw Android Intent Intent,Intent-filter What is Intent? -Intent is a message sent from one program to another

More information

Android Programming Lecture 7 9/23/2011

Android Programming Lecture 7 9/23/2011 Android Programming Lecture 7 9/23/2011 Multiple Activities So far, projects limited to one Activity Next step: Intra-application communication Having multiple activities within own application Inter-application

More information

Writing Efficient Drive Apps for Android. Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations

Writing Efficient Drive Apps for Android. Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations Writing Efficient Drive Apps for Android Claudio Cherubino / Alain Vongsouvanh Google Drive Developer Relations Raise your hand if you use Google Drive source: "put your hands up!" (CC-BY) Raise the other

More information

Termite WiFi Direct API

Termite WiFi Direct API Termite WiFi Direct API Developers Guide 2014/15 Nuno Santos 1. Objectives This document provides a brief description of the Termite WiFi Direct API. 2. Termite API Guide In order for an application to

More information

SMAATSDK. NFC MODULE ON ANDROID REQUIREMENTS AND DOCUMENTATION RELEASE v1.0

SMAATSDK. NFC MODULE ON ANDROID REQUIREMENTS AND DOCUMENTATION RELEASE v1.0 SMAATSDK NFC MODULE ON ANDROID REQUIREMENTS AND DOCUMENTATION RELEASE v1.0 NFC Module on Android Requirements and Documentation Table of contents Scope...3 Purpose...3 General operating diagram...3 Functions

More information

Communicating with a Server

Communicating with a Server Communicating with a Server Client and Server Most mobile applications are no longer stand-alone Many of them now have a Cloud backend The Cloud Client-server communication Server Backend Database HTTP

More information

Developing Android Applications

Developing Android Applications Developing Android Applications Introduction to Software Engineering Fall 2015 Updated 21 October 2015 Android Lab 02 Advanced Android Features 2 Class Plan UI Elements Activities Intents Data Transfer

More information

DOCUMENTATION ON ACPL FM220 RD APPLICATION. Contents

DOCUMENTATION ON ACPL FM220 RD APPLICATION. Contents DOCUMENTATION ON ACPL FM220 RD APPLICATION Contents 1 Device Registration... 2 1.1 Install Test Application... 2 1.2 Device connection... 2 1.3 Registration for Device... 3 2 Testing for Registered Devices...

More information

Android Services & Local IPC: The Command Processor Pattern (Part 1)

Android Services & Local IPC: The Command Processor Pattern (Part 1) : The Command Processor Pattern (Part 1) d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville,

More information

Android Programming Lecture 8: Activities, Odds & Ends, Two New Views 9/28/2011

Android Programming Lecture 8: Activities, Odds & Ends, Two New Views 9/28/2011 Android Programming Lecture 8: Activities, Odds & Ends, Two New Views 9/28/2011 Return Values from Activities: Callee Side How does the Sub-Activity send back a response? Create an Intent to return Stuff

More information

10.1 Introduction. Higher Level Processing. Word Recogniton Model. Text Output. Voice Signals. Spoken Words. Syntax, Semantics, Pragmatics

10.1 Introduction. Higher Level Processing. Word Recogniton Model. Text Output. Voice Signals. Spoken Words. Syntax, Semantics, Pragmatics Chapter 10 Speech Recognition 10.1 Introduction Speech recognition (SR) by machine, which translates spoken words into text has been a goal of research for more than six decades. It is also known as automatic

More information

BCS3283-Mobile Application Development

BCS3283-Mobile Application Development For updated version, please click on http://ocw.ump.edu.my BCS3283-Mobile Application Development Chapter 7 Intent Editor Dr. Mohammed Falah Mohammed Faculty of Computer Systems & Software Engineering

More information

Terms: MediaPlayer, VideoView, MediaController,

Terms: MediaPlayer, VideoView, MediaController, Terms: MediaPlayer, VideoView, MediaController, Sisoft Technologies Pvt Ltd SRC E7, Shipra Riviera Bazar, Gyan Khand-3, Indirapuram, Ghaziabad Website: www.sisoft.in Email:info@sisoft.in Phone: +91-9999-283-283

More information

Easypay COP interface manual

Easypay COP interface manual Easypay COP interface 1/15 Version 3.4 Status published Replaces version 3.3 Issue date 09/14/2015 Valid from 09/14/2015 Valid until - Author Alexander Schamne 2/15 Change list Updated on Updated by Version

More information

Android Services & Local IPC: Overview of Programming Bound Services

Android Services & Local IPC: Overview of Programming Bound Services : Overview of Programming Bound Services d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville,

More information

Version 1.4. Samsung Smart TV In-App Billing Integration Guide

Version 1.4. Samsung Smart TV In-App Billing Integration Guide Samsung Smart TV In-App Billing Integration Guide October 2015 1 Revision History Version Date Description 1.0 2015-08-19 1.1 2015-08-28 1.2 2015-09-09 1.3 2015-09-21 1.4 2015-10-07 Merge DPI & Samsung

More information

Mobile Banking Frequently Asked Questions

Mobile Banking Frequently Asked Questions Mobile Banking Frequently Asked Questions What types of Mobile Banking does Midwest BankCentre offer? We offer three types of Mobile Banking: Mobile Apps allows you to easily connect to Midwest BankCentre

More information

Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26

Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26 Upcoming Assignments Quiz Friday? Lab 5 due today Alpha Version due Friday, February 26 Inject one subtle defect (fault seeding) To be reviewed by a few class members Usability study by CPE 484 students

More information

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL II)

ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL II) ANDROID APPS DEVELOPMENT FOR MOBILE AND TABLET DEVICE (LEVEL II) Lecture 6: Notification and Web Services Notification A notification is a user interface element that you display outside your app's normal

More information

Interworking Guide for Android Samsung Apps

Interworking Guide for Android Samsung Apps Interworking Guide for Android Samsung Apps Media Solution Center Samsung Electronics Page 1 / 6 Table of Contents 1. Overview... 3 2. Interworking Cases and Methods... 3 3. Descriptions... 3 3.1. Invoking

More information

Biometric Sensor SDK. Integration Guide 4.17

Biometric Sensor SDK. Integration Guide 4.17 Biometric Sensor SDK Integration Guide 4.17 Disclaimer Disclaimer of Warranties and Limitations of Liabilities Legal Notices Copyright 2013 2017 VASCO Data Security, Inc., VASCO Data Security International

More information

PAYWISER MINIPOS INTEGRATION GUIDE

PAYWISER MINIPOS INTEGRATION GUIDE PAYWISER MINIPOS INTEGRATION GUIDE TECHNICAL DOCUMENTATION Developed by: CEBASEK Denmark s.r.o. CVR-nr: 36725168 Industriområdet 107 8732 Hovedgård Denmark Slovenian sales and developlent partner: OMNIPOS

More information

Opaali Portal Quick guide

Opaali Portal Quick guide Opaali Portal Quick guide Company information Telia Finland Oyj Teollisuuskatu 15, 00510 HELSINKI, FI Registered office: Helsinki Business ID 1475607-9, VAT No. FI14756079 1 (40) Page 2 (40) Copyright

More information

Using Libraries, Text-to-Speech, Camera. Lecture 12

Using Libraries, Text-to-Speech, Camera. Lecture 12 Using Libraries, Text-to-Speech, Camera Lecture 12 Libraries Many Android developers have produced useful libraries. There is a Maven repository to store various libraries This makes it easy to add them

More information

Software Practice 3 Today s lecture Today s Task

Software Practice 3 Today s lecture Today s Task 1 Software Practice 3 Today s lecture Today s Task Prof. Hwansoo Han T.A. Jeonghwan Park 43 2 MULTITHREAD IN ANDROID 3 Activity and Service before midterm after midterm 4 Java Thread Thread is an execution

More information

FORT Mobile SDK for Android

FORT Mobile SDK for Android FORT Mobile SDK for Android Merchant Integration Guide Document Version: 2.4 February, 2018 Copyright Statement All rights reserved. No part of this document may be reproduced in any form or by any means

More information

Services. service: A background task used by an app.

Services. service: A background task used by an app. CS 193A Services This document is copyright (C) Marty Stepp and Stanford Computer Science. Licensed under Creative Commons Attribution 2.5 License. All rights reserved. Services service: A background task

More information

SitelokTM. Stripe Plugin V1.5

SitelokTM. Stripe Plugin V1.5 SitelokTM Stripe Plugin V1.5 Sitelok Stripe Plugin Manual Copyright 2015-2018 Vibralogix. All rights reserved. This document is provided by Vibralogix for informational purposes only to licensed users

More information

User Guide. 3CX Enhanced Billing Codes. Version

User Guide. 3CX Enhanced Billing Codes. Version User Guide 3CX Enhanced Billing Codes Version 15.5.54 "Copyright VoIPTools, LLC 2011-2017" Information in this document is subject to change without notice. No part of this document may be reproduced or

More information

TIS HELP FOR INDEPENDENT OPERATORS CONTENTS

TIS HELP FOR INDEPENDENT OPERATORS CONTENTS TIS HELP FOR INDEPENDENT OPERATORS CONTENTS 1 INTRODUCTION... 3 1.1 TIE... 3 1.2 Account set up in TIS... 3 1.3 VAT number (EU only)... 3 1.4 Business license number (China only)... 3 1.5 Access levels...

More information

Mobile Programming Practice Background processing AsynTask Service Broadcast receiver Lab #5

Mobile Programming Practice Background processing AsynTask Service Broadcast receiver Lab #5 1 Mobile Programming Practice Background processing AsynTask Service Broadcast receiver Lab #5 Prof. Hwansoo Han T.A. Sung-in Hong T.A. Minseop Jeong 2 Background processing Every Android app has a main

More information

Online Learning Application

Online Learning Application Online Learning Application Objective: It s a known fact that the Average screen sizes of our phones is increasing, thereby encouraging many to read and learn on the move. Keeping this trend in mind, you

More information

Vipps Signup & Login API. Version: 1.0 Date produced: Jan-2017

Vipps Signup & Login API. Version: 1.0 Date produced: Jan-2017 Vipps Signup & Login API Date produced: Jan-2017 Content 1. Overview... 4 1.1 Signup... 4 1.2 Login... 4 1.3 Auto Login... 4 2. Merchant Authentication Flow... 4 3. Authentication... 6 3.1 Access Token...

More information

CMSC436: Fall 2013 Week 3 Lab

CMSC436: Fall 2013 Week 3 Lab CMSC436: Fall 2013 Week 3 Lab Objectives: Familiarize yourself with the Activity class, the Activity lifecycle, and the Android reconfiguration process. Create and monitor a simple application to observe

More information

Networking & Internet

Networking & Internet In App Purchase Programming Guide Networking & Internet 2011-06-17 Apple Inc. 2011 Apple Inc. All rights reserved. exclusion may not apply to you. This warranty gives you specific legal rights, and you

More information

10/27/17. Network Connec1on. Outline. Connect to the Internet. Connect to the Internet. Perform Network Operations. Perform Network Operations

10/27/17. Network Connec1on. Outline. Connect to the Internet. Connect to the Internet. Perform Network Operations. Perform Network Operations Connecting to the Internet Outline Network Connec1on CS443 Mobile Applica1ons Instructor: Bo Sheng Perform network operations Manage network usage Parsing data 1 2 Connect to the Internet Permissions in

More information

Mobile Banking App User s Guide

Mobile Banking App User s Guide Mobile Banking App User s Guide Enrollment Enroll Using Online Banking 1. Log in to your Online Banking account at easternmichiganbank.com. 2. Go to Options > Mobile Settings > Web Mobile Settings. 3.

More information

Sendroid Ultimate. User Manual

Sendroid Ultimate. User Manual Sendroid Ultimate User Manual System Overview Sendroid Ultimate is an ultimate bulk SMS portal software and SMS reseller system designed for bulk SMS service providers, SMS resellers and bulk SMS marketers.

More information

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah.

Islamic University of Gaza. Faculty of Engineering. Computer Engineering Department. Mobile Computing ECOM Eng. Wafaa Audah. Islamic University of Gaza Faculty of Engineering Computer Engineering Department Mobile Computing ECOM 5341 By Eng. Wafaa Audah July 2013 1 Launch activitits, implicit intents, data passing & start activity

More information

Installation guide Swisscom Mobile Security for Android Devices

Installation guide Swisscom Mobile Security for Android Devices Security for 1 Installation of Mobile Security...2 1.1 operating system devices with preinstalled Mobile Security program...2 1.2 operating system devices with preinstalled Swisscom Security Launcher...2

More information

ewallet API integration guide version 5.1 8/31/2015

ewallet API integration guide version 5.1 8/31/2015 ewallet API integration guide version 5.1 8/31/2015 International Payout Systems, Inc. (IPS) ewallet API Integration Guide contains information proprietary to IPS, and is intended only to be used in conjunction

More information

COMP4521 EMBEDDED SYSTEMS SOFTWARE

COMP4521 EMBEDDED SYSTEMS SOFTWARE COMP4521 EMBEDDED SYSTEMS SOFTWARE LAB 5: USING WEBVIEW AND USING THE NETWORK INTRODUCTION In this lab we modify the application we created in the first three labs. Instead of using the default browser,

More information

TIS HELP VCCS TECHNICAL INFORMATION SHOP (TIS) INSTRUCTION FOR INDEPENDENT OPERATORS

TIS HELP VCCS TECHNICAL INFORMATION SHOP (TIS) INSTRUCTION FOR INDEPENDENT OPERATORS VCCS TECHNICAL INFORMATION SHOP (TIS) INSTRUCTION FOR INDEPENDENT OPERATORS CONTENTS 1 INTRODUCTION... 3 1.1 Account set up... 3 1.1.1 Independent operators with TIE access... 3 1.2 Login for registered

More information

Use the API or contact customer service to provide us with the following: General ios Android App Name (friendly one-word name)

Use the API or contact customer service to provide us with the following: General ios Android App Name (friendly one-word name) Oplytic Attribution V 1.2.0 December 2017 Oplytic provides attribution for app-to-app and mobile-web-to-app mobile marketing. Oplytic leverages the tracking provided by Universal Links (ios) and App Links

More information

2Checkout Instant Notification Service

2Checkout Instant Notification Service INS User Guide Revision 1.11 2Checkout Instant Notification Service User Guide Table of Contents Introduction...2 INS System...2 Overview...2 Message Opt-In...2 Message Specifications...3 Messages Supported...3

More information

Attention Students. Capistrano Valley Christian Schools has teamed up with EdTech for your online book store! Here's how it works:

Attention Students. Capistrano Valley Christian Schools has teamed up with EdTech for your online book store! Here's how it works: Attention Students Capistrano Valley Christian Schools has teamed up with EdTech for your online book store! Here's how it works: Your school's online book store opens on August 23rd, 2017, at cvc.shelfit.com.

More information

ebay Connector Features Module Configuration

ebay Connector Features Module Configuration ebay Connector webkul.com/blog/ebay-connector-for-magento2/ March 15, 2016 ebay Connector extension allows you to integrate Magento 2 store with ebay store. Import products, categories, and orders from

More information

DROIDS ON FIRE. Adrián

DROIDS ON FIRE. Adrián DROIDS ON FIRE Adrián Catalán @ykro https://goo.gl/ ige2vk Developer experience matters Cross-platform Integrated Getting Started with Firebase http://github.com /ykro/wikitaco App.java @Override

More information

Nippon Travel Agency Hotel & Ryokan Booking System

Nippon Travel Agency Hotel & Ryokan Booking System Nippon Travel Agency Hotel & Ryokan Booking System Agent s Manual OCT 2017 No. 3 edition 1 This is a dedicated system for agents to sell reservations online. You can search in about 1600 hotels. The prices

More information

FORT Mobile SDK for Android

FORT Mobile SDK for Android FORT Mobile SDK for Android Merchant Integration Guide Document Version: 3.0 December, 2018 Copyright Statement All rights reserved. No part of this document may be reproduced in any form or by any means

More information

Android. Broadcasts Services Notifications

Android. Broadcasts Services Notifications Android Broadcasts Services Notifications Broadcast receivers Application components that can receive intents from other applications Broadcast receivers must be declared in the manifest They have an associated

More information

Android permissions Defining and using permissions Component permissions and related APIs

Android permissions Defining and using permissions Component permissions and related APIs Android permissions Defining and using permissions Component permissions and related APIs Permissions protects resources and data For instance, they limit access to: User information e.g, Contacts Cost-sensitive

More information

NETBANK USER GUIDE v

NETBANK USER GUIDE v LOG IN TO THE NETBANK Log in with Internet Access Code 1. Type in your Customer ID in the Customer ID field. (Your Customer ID is an eight digit unique numerical code sent to you in the Welcome Letter

More information

Multiple Activities. Many apps have multiple activities

Multiple Activities. Many apps have multiple activities Intents Lecture 7 Multiple Activities Many apps have multiple activities An activity A can launch another activity B in response to an event The activity A can pass data to B The second activity B can

More information

User Guide for Consumer & Business Clients

User Guide for Consumer & Business Clients Online Banking from Capital City Bank User Guide for Consumer & Business Clients Revised September 2015 www.ccbg.com/upgrade Contents Overview... 4 Exploring the Home Page... 5 Menu... 6 Accounts... 7

More information

Using Intents to Launch Activities

Using Intents to Launch Activities Using Intents to Launch Activities The most common use of Intents is to bind your application components. Intents are used to start, stop, and transition between the Activities within an application. The

More information

Cello How-To Guide. Package Management

Cello How-To Guide. Package Management Cello How-To Guide Package Management Contents 1 Package Management... 4 1.1 How to implement packages in cello... 4 1.2 Cello Package Structure... 4 1.3 How to Configure a Module... 5 1.4 How to Configure

More information

User Guide. 3CX Enhanced Billing Codes. Version

User Guide. 3CX Enhanced Billing Codes. Version User Guide 3CX Enhanced Billing Codes Version 15.5.54 "Copyright VoIPTools, LLC 2011-2018" Information in this document is subject to change without notice. No part of this document may be reproduced or

More information

Topics Covered in the Android Apps Development Training

Topics Covered in the Android Apps Development Training Topics Covered in the Android Apps Development Training 1. Android Architecture sdk, jdk, class files,.dex, installation, sdk manager, avd manager, avd configurations, emulator, Android Framework Versions,

More information

LINK Mobility SMS REST API MT and Delivery Reports Version 1.3; Last updated September 21, 2017

LINK Mobility SMS REST API MT and Delivery Reports Version 1.3; Last updated September 21, 2017 LINK Mobility SMS REST API MT and Delivery Reports Version 1.3; Last updated September 21, 2017 For help, contact support@linkmobility.com The most up-to-date version of this document is available at http://www.linkmobility.com/developers/

More information

Workshop. 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking

Workshop. 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking Workshop 1. Create a simple Intent (Page 1 2) Launch a Camera for Photo Taking 2. Create Intent with Parsing Data (Page 3 8) Making Phone Call and Dial Access Web Content Playing YouTube Video 3. Create

More information

Booking vacation packages (general)

Booking vacation packages (general) Outrigger Hotels and Resorts Vacations FAQs: Booking vacation packages (general) Am I booking my vacation package directly with Outrigger Hotels and Resorts? No, your booking is handled through Global

More information

2 Career Agency 4.2 User Guide

2 Career Agency 4.2 User Guide This document was produced by Voloper Creations Inc. 2000 2009 Voloper Creations Inc. All Rights Reserved Brands or product names are trademarks or registered trademarks of their respective holders. The

More information

In this lab we will practice creating, throwing and handling exceptions.

In this lab we will practice creating, throwing and handling exceptions. Lab 5 Exceptions Exceptions indicate that a program has encountered an unforeseen problem. While some problems place programmers at fault (for example, using an index that is outside the boundaries of

More information

WebSMS 5.0. User Guide. June 2011

WebSMS 5.0. User Guide. June 2011 WebSMS 5.0 User Guide June 2011 Revision History Version Date Version History 3.0 Apr, 21 2010 Document Released 3.1 Jun, 22 2010 Updated some screen shots 4.0 Aug, 5 2010 Added the following features

More information

BlackBerry Developer Summit. A02: Rapid Development Leveraging BEMS Services and the AppKinetics Framework

BlackBerry Developer Summit. A02: Rapid Development Leveraging BEMS Services and the AppKinetics Framework BlackBerry Developer Summit A02: Rapid Development Leveraging BEMS Services and the AppKinetics Framework Page 2 of 21 Table of Contents 1. Workbook Scope... 4 2. Compatibility... 4 3. Source code download

More information

Subscriptions and Recurring Payments 2.X

Subscriptions and Recurring Payments 2.X Documentation / Documentation Home Subscriptions and Recurring 2.X Created by Unknown User (bondarev), last modified by Unknown User (malynow) on Mar 22, 2017 Installation Set up cron (for eway) Configuration

More information

Programming Concepts and Skills. Creating an Android Project

Programming Concepts and Skills. Creating an Android Project Programming Concepts and Skills Creating an Android Project Getting Started An Android project contains all the files that comprise the source code for your Android app. The Android SDK tools make it easy

More information

Using the Telstra T-Suite Management Console. Customer Administrator s Reference Manual

Using the Telstra T-Suite Management Console. Customer Administrator s Reference Manual Using the Telstra T-Suite Management Console Customer Administrator s Reference Manual June 2011 Registering With TMC Notice Pivot Path is a registered trademark of Jamcracker, Inc. Registered trademark

More information

32. And this is an example on how to retrieve the messages received through NFC.

32. And this is an example on how to retrieve the messages received through NFC. 4. In Android applications the User Interface (UI) thread is the main thread. This thread is very important because it is responsible with displaying/drawing and updating UI elements and handling/dispatching

More information

1. Introduction Create a customer Create Customer prices for plans Create Reseller prices for plans 7

1. Introduction Create a customer Create Customer prices for  plans Create Reseller prices for  plans 7 Quickstart guide Content 1. Introduction 3 2. Create a customer 4 3. Create Customer prices for email plans 5 4. Create Reseller prices for email plans 7 5. Create Customer prices for licenses 9 6. Create

More information

CS 193A. Multiple Activities and Intents

CS 193A. Multiple Activities and Intents CS 193A Multiple Activities and Intents This document is copyright (C) Marty Stepp and Stanford Computer Science. Licensed under Creative Commons Attribution 2.5 License. All rights reserved. Multiple

More information

Grandstream Networks, Inc.

Grandstream Networks, Inc. Grandstream Networks, Inc. IPVideoTalk Cloud Conferencing System Table of Contents INTRODUCTION... 4 OVERVIEW... 5 Sign Up... 5 Sign In... 6 Tool Bar... 7 Portal Notifications... 8 DEVICES... 9 Link GVC320x

More information

Building SDKs. Ty Smith & Javier Soto Code

Building SDKs. Ty Smith & Javier Soto Code Building SDKs Ty Smith & Javier Soto Code Monkeys @tsmith & @javi How to make great SDKs EASY TO USE STABLE LIGHTWEIGHT FLEXIBLE WELL SUPPORTED Easy to Use Easy To Integrate Fabric.with(this, new Crashlytics());

More information

The Suggest Example layout (cont ed)

The Suggest Example layout (cont ed) Using Web Services 5COSC005W MOBILE APPLICATION DEVELOPMENT Lecture 7: Working with Web Services Android provides a full set of Java-standard networking APIs, such as the java.net package containing among

More information

Instructions on Yealink s SDK for Yealink T5 Smart Business Phone Series. Instructions on Yealink s SDK for Yealink T5 Smart Business Phone Series

Instructions on Yealink s SDK for Yealink T5 Smart Business Phone Series. Instructions on Yealink s SDK for Yealink T5 Smart Business Phone Series Instructions on Yealink s SDK for Yealink T5 Smart Business Phone Series Table of Contents 1 SDK Introduction... 5 2 Yealink Android Phone Debugging Preparation... 5 2.1 Enabling the ADB Feature... 5 2.2

More information

CHAPTER 15 ASYNCHRONOUS TASKS

CHAPTER 15 ASYNCHRONOUS TASKS CHAPTER 15 ASYNCHRONOUS TASKS OBJECTIVES After completing Asynchronous Tasks, you will be able to: Describe the process and threading model of Android applications. Use Looper and Handler classes to post

More information

CS378 -Mobile Computing. Services and Broadcast Receivers

CS378 -Mobile Computing. Services and Broadcast Receivers CS378 -Mobile Computing Services and Broadcast Receivers Services One of the four primary application components: activities content providers services broadcast receivers 2 Services Application component

More information

Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial

Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial Revision history 90001431-13 Revision Date Description A October 2014 Original release. B October 2017 Rebranded the document. Edited the document.

More information

Answers to Exercises

Answers to Exercises Answers to Exercises CHAPTER 1 ANSWERS 1. What is an AVD? Ans: An AVD is an Android Virtual Device. It represents an Android emulator, which emulates a particular configuration of an actual Android device.

More information

Interactive Voice Response (IVR) Extension Type Guide

Interactive Voice Response (IVR) Extension Type Guide 4PSA VoipNow 2.0.3 Interactive Voice Response (IVR) Extension Type Guide For more information about 4PSA VoipNow, check: http://www.voipnow.com Copyrights 2002-2009 Rack-Soft, LLC. VoipNow is a registered

More information

Samsung In-App Purchase v3.0 Development Preparations

Samsung In-App Purchase v3.0 Development Preparations Samsung In-App Purchase v3.0 Development Preparations Copyright Copyright 2015 Samsung Electronics Co. Ltd. All Rights Reserved. Though every care has been taken to ensure the accuracy of this document,

More information

South Africa

South Africa South Africa 2013 Lecture 8: Accessing the Web andunittests http://aiti.mit.edu Interacting with the Web How to Access Web Content 1. Give your app permission to access the web 2. Open a connection to

More information

Magento 2 Integration Manual (Version /10/2017)

Magento 2 Integration Manual (Version /10/2017) Magento 2 Integration Manual (Version 1.1.0-13/10/2017) Copyright Notice The software that this user documentation manual refers to, contains proprietary content of Megaventory Inc. and Magento (an ebay

More information

Magento Integration Manual (Version /15/2017)

Magento Integration Manual (Version /15/2017) Magento Integration Manual (Version 2.1.1-05/15/2017) Copyright Notice The software that this user documentation manual refers to, contains proprietary content of Megaventory Inc. and Magento (an ebay

More information

AHAU SOFTWARE. User Guide. Easy Projects Outlook Add-in. version 2.6

AHAU SOFTWARE. User Guide. Easy Projects Outlook Add-in. version 2.6 AHAU SOFTWARE User Guide Easy Projects Outlook Add-in version 2.6 This Outlook add-in makes it possible to sync tasks, import contacts and calendar, as well as to get quick access to attachments and messages

More information

External Services. CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion

External Services. CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion External Services CSE 5236: Mobile Application Development Course Coordinator: Dr. Rajiv Ramnath Instructor: Adam C. Champion 1 External Services Viewing websites Location- and map-based functionality

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 08 Tutorial 2, Part 2, Facebook API (Refer Slide Time: 00:12)

More information

Integration Service. Admin Console User Guide. On-Premises

Integration Service. Admin Console User Guide. On-Premises Kony MobileFabric TM Integration Service Admin Console User Guide On-Premises Release 7.3 Document Relevance and Accuracy This document is considered relevant to the Release stated on this title page and

More information

Contents Using the Primavera Cloud Service Administrator's Guide... 9 Web Browser Setup Tasks... 10

Contents Using the Primavera Cloud Service Administrator's Guide... 9 Web Browser Setup Tasks... 10 Cloud Service Administrator's Guide 15 R2 March 2016 Contents Using the Primavera Cloud Service Administrator's Guide... 9 Web Browser Setup Tasks... 10 Configuring Settings for Microsoft Internet Explorer...

More information

Libelium Cloud Hive. Technical Guide

Libelium Cloud Hive. Technical Guide Libelium Cloud Hive Technical Guide Index Document version: v7.0-12/2018 Libelium Comunicaciones Distribuidas S.L. INDEX 1. General and information... 4 1.1. Introduction...4 1.1.1. Overview...4 1.2. Data

More information

Nasuni Data API Nasuni Corporation Boston, MA

Nasuni Data API Nasuni Corporation Boston, MA Nasuni Corporation Boston, MA Introduction The Nasuni API has been available in the Nasuni Filer since September 2012 (version 4.0.1) and is in use by hundreds of mobile clients worldwide. Previously,

More information

Amazon WorkMail. User Guide Version 1.0

Amazon WorkMail. User Guide Version 1.0 Amazon WorkMail User Guide Amazon WorkMail: User Guide Copyright 2017 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Amazon's trademarks and trade dress may not be used in connection

More information