Skip Headers

Oracle9iAS Wireless Developer's Guide
Release 2 (9.0.2)

Part Number A90485-02
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Go to previous page Go to next page

19
m-Commerce

This document describes reusable Services that are included in Oracle9iAS Wireless.

Each section of this document presents a different topic. These sections include:

Figure 19-1 M-Commerce

Text description of feature8.gif follows.

Text description of the illustration feature8.gif

19.1 m-Commerce Service

Oracle m-Commerce Service is a set of Oracle9iAS Wireless modules that securely store user profiles, supply information authorized by users of third party applications, and interface with on-line payment mechanisms to complete transactions. The m-Commerce Service also translates existing WML applications into Mobile-XML, and uses FormFiller to map forms, which spares users from entering information from a mobile device. Oracle m-Commerce Service is automatically installed along with Oracle9i Application Server.

The extendible modules architecture on the m-Commerce Service enables the development of drivers to integrate m-Commerce services to third-party applications.

19.2 m-Commerce APIs

You can build an m-Commerce application using Oracle9i Application Server Mobile XML. You can incorporate any m-Commerce component to this application by adding URL links to the modules complying with their APIs.

If you have already developed an m-Commerce application in WML, you can run it through the Translator Module by calling its API, and providing your application's URL. This action will add links from your application to all m-Commerce modules.

19.2.1 Before You Begin

Before you configure the modules, you must do the following:

  1. Modify the security.sh script and change the variables. See Section 19.3.1.5 for a list of variables.

  2. Set the JAVA13_HOME environment to the current JDK directory.

  3. Run the script to generate the key, security.sh (UNIX) or security.bat (WINDOWS).

  4. Record the path of the encryption file %ORACLE_HOME/wireless/j2ee/applications/modules/modules-web/commerce/setup/scripts KeyMgmtProps.enc

  5. Using the Edit Master Services function of the Service Designer, modify the default value of the input parameter, ORACLE_SERVICES_COMMERCE_SECURITY_PROPS_PATH.


Note:

The default value of this input parameter must not include the KeyMgmtProps.enc file.


19.3 Mobile Wallet (m-Wallet)

The mobile Wallet (m-wallet) enables users to manage their profile from mobile devices as well as participate in commerce transactions and track their activity.

The m-Wallet Module securely stores user's payment instrument information, such as credit cards, bank accounts, and shipping addresses. Upon user approval, other m-Commerce applications can retrieve this information to process payments.

The Oracle9iAS Wireless administrator can configure the Credit Cards, Bank Accounts and Extended Information compartments at any time, even if they contain values that users have previously entered. The fixed compartments are profile, shipping addresses and internet accounts.

The m-Wallet is divided into compartments that can hold one or more instruments. For example the Credit Cards compartment holds as many credit cards as a user sees fit to enter. The Extended Information compartment, however, holds only one information set.

19.3.1 Configuring the m-Wallet

Mobile Wallet module (m-Wallet) provides a convenient single-click commerce payment mechanism. It is a server side, encrypted entity that contains payment instrument, identification and address information for registered users. m-Wallet enables users to store all the information required to fill out commerce-related forms from any application. That information is used to complete transactions, and through APIs (built and maintained by authorized third-party service providers), can be made available to authorized partners and e-merchants. It processes requests (via proxies) for personal and payment instrument information issued through HTML or WML forms by third-parties, and presents them to users, who decide explicitly what information gets sent back to the third-party. The wallet stores this information securely for users, providing them an easy, secure shopping experience, and freeing them from repeatedly entering information.

m-Wallet also encrypts and decrypts all of the information stored in the Repository using a three-part key comprised from a combination of the following:

Each portion of the three-layer key can be changed independently, but each of them is required in order to decrypt wallet-stored information. This combination is never stored, only an encrypted alias, assigned to each entry during its creation or modification, is sent over the wireless network.

Because security is central to the m-Wallet you must configure HTTPs for the m-Wallet.

19.3.1.1 Configuring the OC4J Application Server for HTTPS

The installation of Oracle9i Application Server includes both installation of a dummy certificate and automatic HTTPS configuration. Use this certificate only for testing and development, as it is not signed by a trusted entity.


Note:

When setting up a production machine, you must install the actual certificate for HTTPS on the server.


19.3.1.2 Configuring the SQL Tables

You do not need to configure the SQL tables; installing Oracle9iAS Wireless installs all of the tables needed by the Formfiller module.

19.3.1.3 Configuring the Security Server

You must install and configure the Secure Key Server before using the Wallet Module. For more information, see Section 19.2.1.

19.3.1.4 Java Configuration

The following security .jar files must be placed under jdk1.3/jre/lib/ext. (The Oracle Installer creates this directory.)

19.3.1.5 Scripts for Generating and Installing the Security Keys

You must insert an encryption key. This encryption key forms the backbone for encryptions and decryptions performed by the system.

To configure security.sh, complete these steps:

  1. Modify the security.sh script and change the variables.

  2. Run the script to generate the key, security.sh (UNIX) or security.bat (WINDOWS).

To generate and install the security key, follow these steps:

  1. Go to ORACLE_HOME/wireless/sample

  2. Edit the template security.sh (or security.bat) script to configure the following:
    Table 19-1 Security Key configuration

    DB_USER, DB_PWD and DB_URL

    Passwords for the Wireless database schema are randomized out of the box, and are not available to end users. Hence, the password must be changed by a user through the Oracle Enterprise Manager console; this new password must be used for security key configuration. The password for the Wireless schema can be changed from the Oracle Enterprise Manager console:

    1. Click on the link corresponding to the middle tier.

    2. Click the 'Configure Schema' option.

    3. Select the radio button corresponding to 'Oracle9iAS Wireless'.

    4. Click 'Change Password'.

    All platforms are affected by this.

    SEC_SEED

    The seed number used to create the System Encryption Key. The range of the number is that of a java long number (that is, -9223372036854775808L to 9223372036854775807L.) For example: SEC_SEED 1234567890

    SEC_PWD

    The password with which the generated System Encryption Key is encrypted and stored in the database. The password can be any length greater than eight characters. For example: SEC_PWD systemEncryptionKeyPassword

    SEC_FILE_PWD

    The password with which to encrypt the local KeyMgmtProps.enc file (which contains secure information) protecting it from unauthorized access. The password can be any length greater than eight characters. For example: SEC_FILE_PWD fileEncryptionPassword.

  3. Save your changes and execute the script. This generates a secure file, KeyMgmtProps.enc in the current directory and also generates, encrypts and inserts the System Encryption Key into the database as well as printing out the directory path for the security file. You must save the path to the file because it is used as a service input parameter value.


    Note:

    Because the script contains sensitive information, you should destroy it after running it or move it to a secure place.


19.3.1.6 Configuring modules.properties

You must configure the modules.properties file with the correct paths for both the HTTP and HTTPS listeners so that such resources as audio and images are presented properly in HTTPS mode.

The modules.properties is located under ORACLE_HOME/wireless/server/classes/messages/oracle/panama/module/common

An example of the correct values for modules.properties is as follows:

/*
 *
 * $Copyright:
 * Copyright (c) 2001 Oracle Corporation all rights reserved
 */
#------------------------------------------------------------------------
# Please configure here the module server URLs.
# If no value if configured, we'll try to use the request in order to
# get the server name
# example:
# device.resources.host=http://myserver.com
# device.resources.port=9080
# device.resources.secure.host=https://myserver.com
# device.resources.secure.port=9081
#------------------------------------------------------------------------
device.resources.host=http://www.myserver.com
device.resources.port=9080
device.resources.secure.host=https://www.myserver.com
device.resources.secure.port=443

19.3.1.7 Service Input Parameters

There are two optional service input parameters which do not require configuration.

ORACLE_SERVICES_COMMERCE_WALLET_CONFIRMATION_PAGE

Whenever a third party application requests user information from the Wallet, the user must agree to share this information. This parameter is set regardless of whether this confirmation card is presented to user.

The valid values for this input parameter include:

Administrators may want to customize these values depending on the site's policy.

ORACLE_SERVICES_COMMERCE_WALLET_IS_SECURE

Defines whether the m-Wallet module runs in HTTP or HTTPS.

The valid values for this input parameter include the following:

Wallet Module requires the Security Server to be correctly installed and configured prior to its use. There is one required parameter which requires configuration:

ORACLE_SERVICES_COMMERCE_SECURITY_PROPS_PATH

19.3.2 Linking to the M-Wallet

You can link to the m-wallet using the following virtual URL:

omp://oracle/services/commerce/wallet

The m-wallet includes the following input call parameters:

Wallet_Action

Wallet_Action is used to determine the type of overall action that service requests. This is a mandatory parameter.

Table 19-2 Input Parameters for Wallet_Action

Valid Value Description Requirement

GETSTRUCTURE

Used to retrieve the Wallet structure definition. Triggers WALLET_STRUCTURE

.

GET_FORM_DATA

Used when a third party application wants to request information from the user's mobile wallet.Triggers output generateUserResponse

getWalletInfoRequest.

GET_INET_ACCT

Used to add Internet account information in the user's wallet.

createInternetAccountRequest.

GEN_USER_PASS

Used to automatically generate the username and password information. Triggers output generateUserResponse.

getWalletInfoRequest

This group contains the following parameters. This is an optional group.

Table 19-3 Parameters of the getWalletInfoRequest Group

Parameter Name Mandatory Description Valid Value

FORM_TITLE

Yes

This parameter is displayed as part of the Wallet module for the duration of the call.

A string. For example:

FORM_TITLE=Movie Ticket Purchase.

GET_DATA

Yes

A comma-separated string of tokens which specify which values to retrieve from the wallet.

Valid values in this string are:

  • CC (triggers output creditCardData)

  • BA (triggers output bankAccountData)

  • FN (triggers output FIRSTNAME)

  • LN (triggers output LASTNAME)

  • EMAIL (triggers output EMAIL)

  • PHONE (triggers output phoneData)

  • INT_ACC (triggers output internetAccountData)

  • SHIP (triggers output shippingData)

For example:

  • GET_DATA=FN,LN,SHIP

  • GET_DATA=CC, PHONE, INT_ACC

APPICATION

No

The application name displayed to the user and stored in the History file, so that the user always knows which applications are requesting the user's wallet information.

A string. For example: APPLICATION=Bookshop Application.

ISEXCLUSIVE

No

If set to True, then the user can chose either Credit Card or Bank Account. This parameter is used only by the Payment module.

A boolean.

DOMAIN

Yes

A string. For example: DOMAIN=http:/wwww.oraclemobile.com

ACCOUNT_ID

Yes

A string. For example: ACCOUNT_ID=smurgle.

PASSWORD

Yes

A string. For example: PASSWORD=237894.

19.3.3 Output Parameters for the m-Wallet

The m-Wallet module includes the following output parameters:

Table 19-4 Output Parameters for the m-Wallet Module

Parameter Name Mandatory Description Valid Value

WALLET_SELECT

Yes

Defines whether the operation completed correctly. If the user cancels the wallet operation, this variable contains False.

Valid values are True and False

WALLET_STRUCTURE

No

This string specifies the wallet's internal structure. The wallet structure is based on fixed- and user- defined compartments. The fixed compartments include the User Profile, Internet Accounts, and Shipping Addresses. The user-defined compartments include Credit Card, Bank Account, and Extended Info.

Restriction: The return string is formatted as COMPARTMENT_NAME:FIELD_NAME90FIELD_DESCRIPTION.

A string. For example: WALLET_STRUCTURE=If the wallet has compartments CC and BA for credit card and bank account respectively, then the return string can be CC:CCNUM()CreditCard Number, CC:CCEXP()Credit Card Expiration Date, BA:BNUM() Bank Account Number...

FIRSTNAME

No

This variable holds its value of the user's first name when the calling application requests the user's name. This variable cannot be changed, as it is part of the fixed Profile compartment.

A string. For example: FIRSTNAME=John

LASTNAME

No

This variable holds the value of the user's last name when the calling application requests the user's last name. It cannot be changed as it is part of the fixed Profile compartment.

A string. For example: LASTNAME=John

EMAIL

No

This variable holds the value of the user's email address when the calling application requests the user's email. This cannot be changed, as it is part of the fixed Profile compartment.

A string. For example: EMAIL=John.Doe@company.com

CreditCardData

The Credit Cards structure held in wallet.properties. The fields are returned as request parameters. The following parameters are the default parameters of the CreditCardData group. This is an optional parameter.

Table 19-5 Parameters of the CreditCardData Group

Parameter Name Mandatory Description Valid Value

CC

Yes

A short name for the credit card.

A string. For example: CC=My Bank Visa Card.

CC_HOLDER_NAME

Yes

The name of the holder of the credit card.

A string. For example: CC_HOLDER_NAME=John Doe

CC_HOLDER_ADDRESS_LANDMARK

Yes

The billing address of the holder of the credit card. This is a link to the user's locationmarks.

Restriction: this landmark must be defined in the location module.

A string. For Example: CC_HOLDER_ADDRESS_LANDMARK=Office at Oracle

CC_EXPIRATION_DATE

Yes

The expiration date of the credit card.

Restriction: this should be in the MM/YYYY form. This also must be defined in wallet.properties.

A string. For example: CC_EXPIRATION_DATE=04/2003

CC_LANDMARK_NAME

Yes

The locationmark of the credit card.

Restriction: the parameters for the street address (such as CC_ADDRESS_LINE1)are built on-the-fly as Wallet Module 'knows' that Billing Address is a reference to a location mark.

A string. For example: CC_LANDMARK_NAME=Office at Oracle

CC_ADDRESS_LINE1

No

A string. For example: CC_ADDRESS_LINE1=500 Oracle Pkwy

CC_ADDRESS_LINE2

No

A string. For example: CC_ADDRESS_LINE2=

CC_CITY

No

A string. For example: CC_CITY=Redwood Shores

CC_STATE

No

A string. For example:CC_STATE=CA

CC_COUNTRY

No

A string. For example: CC_COUNTRY=USA

CC_ZIPCODE

No

A string. For example: CC_ZIPCODE=94065

bankAccountData

The Bank Account structure defined in wallet.properties. All the fields are returned as request parameters.

This group contains the following parameters. This is an optional group.

Table 19-6 Parameters of the bankAccountData Group

Parameter Name Mandatory Description Valid Value

BA

Yes

The short name for the bank account

A string. For example: BA=Checking ****-2438

BA_HOLDER_NAME

Yes

The name of the holder of the bank account.

A string. For example: BA_HOLDER_NAME=John Doe

BA_HOLDER_ADDRESS_LANDMARK

Yes

Statement Address - this is a link to the user's Location Marks

Restriction: This landmark must be defined in the location module.

A string. For example: BA_HOLDER_ADDRESS_LANDMARK=Palo Alto branch of Western Union

BA_ACCT_NUMBER

Yes

The number of the bank account.

Restriction: this can only be numbers; all other characters are ignored.

A string. For example: BA_ACCT_NUMBER=23894592

BA_ACCT_TYPE

Yes

The type of account, such as checking or savings.

Checking, Savings,Market-Rate. For example: BA_ACCT_TYPE=Checking

BA_FI_ROUTING_NUMBER

Yes

The routing number of the bank.

Restriction: this must only be numbers; all other characters are ignored.

A string. For example: BA_FI_ROUTING_NUMBER=23985002394

BA_FI_NAME

Yes

The name of the bank.

A string. For example: BA_FI_NAME=Bank of America

BA_LANDMARK_NAME

Yes

The parameters for the bank's street address (such as BA_ADDRESS_LINE1) are built on-the-fly, as the Wallet module 'knows' that Billing Address is a reference to a location mark.

Restriction: This landmark must be defined in the location module.

A string. For example: BA_LANDMARK_NAME=Palo Alto branch of Western Union

BA_ADDRESS_LINE1

No

A string. For example: BA_ADDRESS_LINE1=2035 Island Parkway

BA_ADDRESS_LINE2

No

A string. For example: BA_ADDRESS_LINE2=Apt. #P-24

BA_CITY

No

A string. For example: BA_CITY=Menlo Park

BA_STATE

No

A string. For example: BA_STATE=CA

BA_COUNTRY

No

A string. For example: BA_COUNTRY=USA

BA_ZIPCODE

No

A string. For example: BA_ZIPCODE=91750

idData

The Extended Information structure defined in wallet.properties. All fields are returned as request parameters.

The idData group contains the following parameters. This is an optional group:

Table 19-7 Parameters of the idData Group

Parameter Name Mandatory Description Valid Value

ID_SSN

No

the Social Security Number

A string. For example: ID_SSN=298459825

ID_DL

No

A driver's licence number

A string. For example: ID_DL=B239922023

ID_DL_STATE

No

The state in which the driver's license has been issued.

A string. For example: ID_DL_STATE=CA

ID_DL_EXP_DATE

No

The expiration date of the driver's license.

Restriction: The format (MM/DD/YYYY,) is defined in the wallet.properties.

A string. For example: ID_DL_EXP_DATE=04/27/2007

ID_PASSPORT

No

A passport number

A string. For example: ID_PASSPORT=B293A923CK

ID_PASSPORT_EXP_DATE

No

The expiration date of the passport.

Restriction: The format (MM/DD/YYYY) is defined in the wallet.properties.

A string. For example: ID_PASSPORT_EXP_DATE=04/08/1997

19.3.3.1 Extending the m-Wallet Structure

You can configure the structure of the m-Wallet so that its contents can be personalized according to usage.

The m-Wallet structure is defined in the wallet.properties file located under the directory ORACLE_HOME/wireless/server/classes/messages/oracle/panama/module/commerce/wallet/wallet.properties

This file contains the definitions for credit cards, bank accounts and extended information. In addition, this file contains the definition of the formats to be used for each field. The format definitions are used for internationalization purposes of the dates.

Defining a Compartment

To define a compartment, When defining a compartment, there are few things one needs to do:

  1. Add a reference to this compartment in the compartments key:

    compartments=CREDIT_CARD,BANK_ACCOUNT,ID 
    
    
  2. Add the total number of fields in this new compartment:

    CREDIT_CARD.fieldnumber=6 
    

  1. Add all the fields for this compartment and add attributes for each field. You can add up to six attributes (0 - 5)

    The variable is built as follows:

    <comparment_name>.fieldNN.itemNN=<value>, where: 
    compartment_name = current compartment name, i.e. CREDIT_CARD 
    fieldNN = represents the current field, starting in 1, i.e. CREDIT_
    CARD.field1 
    itemNN = represents each attribute of this field, starting in 0, i.e. 
    CREDIT_CARD.field1.item0 
    
    

    The attributes are defined as follows:

    • The application reads variables from the request to retrieve a value for an specific field from the wallet. This variable name is defined in the attribute #0

      CREDIT_CARD.field1.item0=<request_variable_name, i.e. CC_HOLDER_NAME>

    • The label that appears to the end user is defined in the attribute #1. It is a key to a value defined in portal.properties (for internationalization purposes).

      CREDIT_CARD.field1.item1=<key.in.portal.properties, i.e. modules.commerce.wallet.creditcard.holdername

    • Each field can be either optional or mandatory, depending on the compartment rules. This is defined in attribute #2.

      CREDIT_CARD.field1.item2=<MANDATORY|OPTIONAL>

    • The format of this field (for display on WML and HDML WAP devices) is defined in attribute #3 and is a reference of a format previously defined in wallet.properties

      CREDIT_CARD.field1.item3=<format, i.e. MIXED_FORMAT, NUMBER_FORMAT, DATE_FORMAT>

    • If the field contains a list of possible values, such as credit card types, then they are listed in attribute #4. Use a comma (,) to separate these values.

      CREDIT_CARD.field1.item4=<comma-separated list of values, i.e. Visa, Master, AmEx, Discover, Diners>

    • Attribute #5 is used if the current field stores an address by having a reference to an existing location mark.

      CREDIT_CARD.field1.item5=<LINK_LOC>

19.4 Translator

The Translator module enables any site written in WML to be rendered on any device by converting its contents to MobileXML. It also enhances the navigation of sites originally authored in WML by adding links to Oracle9iAS Wireless core services. Currently, only WAP sites are supported. There is no output parameter; the translated result and status code are internally consumed by the translator module.

19.4.1 Configuring the Translator Module

The Translator has the following service input parameters:

19.4.2 Linking to the Translator Module

You can link to the Translator module using the following virtual URL:

omp://oracle/services/commerce/translator

The Translator module includes the following input call parameters.

Table 19-8 Input Call Parameters of the Translator Module

Parameter Name Mandatory Description Restriction Valid Value Example

XLTORSITE

Yes

The source URL of the WML site, whose content will be translated into MobileXML

This must be in a valid URL format.

XLTORSITE=http://www.oraclemobile.com

XLTORLANG

No

The source language of the WML site

Valid strings are WML, HDML, VXML. Currently only WML is accepted.

WML

EXTENSIONACTION

No

Extension actions are actions other than translating a URL. The extension action can be either "HELP" (used to show help message) or "DELPRESET" (used to delete a preset). If the extension action is passed as "DELPRESET", then the preset label should be passed.

The valid values include:

HELP (Help message for translator service)

DELPRESET (Delete a preset)

PRESETLABEL

No

Label of the preset that will be deleted, which is normally a site name

The label should be a string.

PRESETLABEL=www.oraclemobile.com

Output Parameters

This section includes invocation examples for translating a site and removing a preset using the following input parameters:

Translating a Site

You use the input parameter XLTORSITE to translate a WML site as follows:

XLTORSITE=http://www.oraclemobile.com

Removing a Preset

You use the input parameters EXTENSIONACTION and PRESETLABEL to remove a preset as follows:

EXTENSIONACTION=DELPRESET

PRESETLABEL=www.oraclemobile.com

19.5 iPayment

The iPayment module, which integrates with Oracle CRM iPayment module, processes credit card and bank account transactions.

Payment Processing enables integration with payment mechanisms, such as Oracle's CRM iPayment. As a result, credit card processing and bank account transactions are carried out through direct connections to financial networks. You can add other drivers that integrate payment solution providers per customer requests.

Through integration with Oracle CRM's iPayment component, which implements transaction settlement support for credit cards and bank accounts, allows transactions to be processed directly through the platform rather than through a processing infrastructure deployed by merchants.

19.5.1 Configuring the iPayment Service Module

You must correctly install and configure the Oracle CRM iPayment before you use the iPayment module.

19.5.1.1 Service Configuration Parameters

The iPayment Service module includes the following service configuration parameters:


Note:

ORACLE_SERVICES_COMMERCE_PAYMENT_DBCFILE and ORACLE_SERVICES_COMMERCE_PAYMENT_ECAPPID are required parameters.


19.5.1.2 Capturing Transactions

Merchants can use a URL whenever they want to capture previously authorized transactions. This URL can be used in both secure and non-secure modes. The difference between the two modes is the HTTP and HTTPS protocols.

Non-Secure Capture

The http URL for the non-secure capture of a previously authorized transaction is as follows:

http://myserver.com:9080/modules/commerce/payment/jsp/IPaymentProcess.jsp?

MERCHANTID=<merchantID>&

MERCHANTPW=<merchantPWD>&

TRXID=<transactionID>&

CURRENCY=<currency>&

AMOUNT=<amount>

For a merchant called BookStore to capture transaction #1234 in the amount of US$100.00, you call the URL and then enter the parameters as follows:

http://myserver.com:9080/modules/commerce/payment/jsp/IPaymentProcess.jsp?

MERCHANTID=bookstore&MERCHANTPW=welcome&TRXID=1234&CURRENCY=USD&AMOUNT=100

Secure Capture

In order to use the secure mode for the capture URL, you must first configure the SSL for the OC4J Application Server. For information on configuring the OC4J Application Server, see Section 19.3.1.1.

The HTTPS URL for the secure capture of a previously authorized transaction is as follows:

https://myserver.com:443/modules/commerce/payment/jsp/IPaymentProcess.jsp?

MERCHANTID=<merchantID>&
MERCHANTPW=<merchantPWD>&
TRXID=<transactionID>&
CURRENCY=<currency>&
AMOUNT=<amount> 


Note:

Merchants must have an Oracle9iAS Wireless account to use the capture URL.


19.6 Formfiller

The Formfiller module is a self-teaching form filler, one that maintains mappings between application form fields and wallet elements. The Formfiller accepts a URL and a list of label and variable names as input parameters, and checks if there is a stored mapping from the given labels and variables to wallet fields. If there is no such mapping, it enables users to create a new mapping into wallet fields. Once a mapping is retrieved or created, it calls the wallet, asking it for the given mapped information. Upon successful completion, the module returns a status of Success along with the wallet values corresponding to the label/variable name list. Otherwise, a status code of Failure will be returned

19.6.1 Configuring the Formfiller Module

Before you can deploy the Formfiller module, you must install the Formfiller, configure the guessing heuristics, and approve the mappings.

19.6.1.1 Installing Formfiller

You do not need to configure the SQL tables; installing Oracle9iAS Wireless installs all of the tables needed by the Formfiller module.

19.6.1.2 Configuring the Guessing Heuristics

When an existing mapping is not available, the Formfiller enables authorized users to select given fields from the m-Wallet to fill in values for a given input field in a wireless form.

When constructing a new mapping, the Formfiller uses name guessing heuristics to automatically suggest default values to the user. As a result, the mapping creation process is minimized, making it a "user-approved" mapping process.

Name-guessing can be done in two ways: you can enter rules for explicit mapping suggestions, (such as 'Credit Card number' to 'CreditCard:Number') or you can implement a dynamic heuristic that determines the similarities between the input field and the fields in the m-Wallet. For example, 'Deluxe user home address' would map automatically to 'Profile:Address'.

Detail Implementation and Usage

The "fixed" mapping suggestions should be placed as service parameters for the Formfiller service. The Input Parameter name should consist of `ORACLE_SERVICES_COMMERCE_FORMFILLER_SUGGESTIONS_' and the suggested key to use. For example, `ORACLE_SERVICES_COMMERCE_FORMFILLER_SUGGESTIONS_Credit Card' would be a suggested key to use. The default value must contain a valid Wallet compartment and field name. The administrator for the Formfiller should know the compartment and the field name in advance. For example:

Input Parameter Name: ORACLE_SERVICES_COMMERCE_FORMFILLER_SUGGESTIONS_Credit Card

Default Value: CREDIT CARD:CC_NUMBER

The "dynamic" mapping suggestions are controlled by a class that implements the GuessingHeuristic interface. The factory method inside the FormFillerManager to retrieve the implementation of the guessing heuristic takes the class name from the Formfiller service parameters. The key of the property is ORACLE_SERVICES_COMMERCE_FORMFILLER_HEURISTIC.

19.6.1.3 Setting Up the Guessing Heuristics

The guessing heuristics uses keys that are defined in the service parameters for Formfiller Master Service. In order to setup, ORACLE_SERVICES_COMMERCE_FORMFILLER_HEURISTIC defines the property that the GuessingHeuristic implementor of the Formfiller module uses. This value must be the fully qualified class name of the class implementing the GuessingHeuristic interface. This is an optional field, as the default dynamic heuristic provider is set to oracle.panama.app.services.modules.formfiller.WalletGuessingHeuristic.

The following are input service parameters are examples of the configuration file:

19.6.1.4 Using the Formfiller Administration

The Formfiller Administration enables you to manage settings, manipulate stored mappings, and approve pending mappings.

To access the Formfiller Administration:

  1. Select the Content Manager. The Root Folders and Services screen appears.

  2. From the browse screen for the root-level folders and services, select the Commerce Folder.

  3. Select Formfiller.

  4. Click Edit. The Edit Service screen appears.

  5. From the left panel of the Edit Service screen, select Master Service.

  6. From the Edit Master Service screen, click Configure. The Formfiller Administration appears and defaults to the Config tab.

The Config tab enables you to set the submission mode for the Formfiller mappings by selecting between the following options:

The Config tab also includes the Auto-Approve Mode. Selecting this option approves all submitted mappings immediately. (These mappings do not need approval as they become effective immediately.)

Figure 19-2 The Config Tab of the Formfiller Administration

Text description of int_ffcn.gif follows.

Text description of the illustration int_ffcn.gif

The Existing Mappings tab enables you to search for, edit, and delete existing Formfiller mappings.

To retrieve a stored mapping, either search for the mapping by URL, or select Get All. The mapping appears in the pane in the Stored Maps section of the screen. To edit a mapping, click on the mapping. The mapping's form label, variable name (Varname) and matching wallet parameters appear in the right frame. You can then modify the mapping by using the drop-down lists to select different matching wallet parameters. Click done after you have completed your changes. Clicking Delete removes the mapping.

Figure 19-3 The Existing Mappings Tab of the Formfiller Administration

Text description of int_ffem.gif follows.

Text description of the illustration int_ffem.gif

The Pending Mappings tab enables you to search for, edit, delete, and approve any pending (unapproved) mappings.

You can retrieve a pending mapping either by searching by URL, or by user. To retrieve all the pending mappings, select Get All. The mappings appear in the pane in the Stored Maps section of the screen. To select a mapping, click on the mapping. The mapping's form label, variable name (Varname) and matching wallet parameters appear in the right frame. You can then approve the mapping or delete it.

Figure 19-4 The Pending Mappings Tab of the Formfiller Administration

Text description of int_ffpm.gif follows.

Text description of the illustration int_ffpm.gif


Note:

For performance reasons, (such as a database connection cache with a five-minute expiration period) it can take up to five minutes for changes made using the Formfiller Administration to be reflected in the system.


19.6.1.5 Configuring the Input Parameters for the Formfiller Module

To configure the input parameters for this module:

The Formfiller module includes the following optional input parameters, which do not require configuration.

19.6.1.6 Linking to the Formfiller Module

You link to the Formfiller module using the following virtual URL:

omp://oracle/services/commerce/formfiller

The Formfiller module includes the following input call parameters:

Table 19-9 Input Call Parameters of the Formfiller Module

Parameter Name Mandatory? Description Valid Value Triggers Output

FORMFILLURL

Yes

The URL of the form to be filled. Restriction: URL encoded

A string. For example: FORMFILLURL=http://www.formfillerdemo.com

ReturnGroup

FORMFILLPARAMS

Yes

The parameters inside the form. Restriction: It should be a comma-separated, ordered list of [%label%:%variable name%] pairs.Where %label% is the label used in the form that is used for the %variable name% variable. The Actual parameters must be URL encoded

.A string. For example: FORMFILLPARAMS=First+Name:fname,Last+Name:lname,Credit+Card:CC_NUMBER,Email:EMAIL,Address:Address

ReturnGroup

APPLICATION

No

Specifies the application name to identify the request to the Formfiller (which in turn passes it to the m-Wallet). When it is not specified, the URL will be treated as the application name. This must be URL encoded.

A string. For example: APPLICATION=FormFiller Demo

ReturnGroup

19.6.1.7 Output Parameters

The Formfiller's output parameters include the following:

ReturnGroup

This group includes the following parameters, which return the values for the Formfiller.

Table 19-10 Parameters of ReturnGroup

Parameter Mandatory Description Valid Values

FORMFILLURL

Yes

The URL of the form to be filled. Restriction: URL encoded

A string. For example: FORMFILLURL=http://www.formfillerdemo.com

FORMFILLPARAMS

Yes

The parameters inside the form.

Restrictions:

  • The parameters must be URL encoded.

  • For successful retrievals, the parameters should be a comma-separated ordered list of [%label%:%variable name%:%value%] pairs. Where %label% is the label used in the form that is used for the %variable name% variable. %value% contains the result from the m-Wallet.

  • For unsuccessful retrievals, the parameters do not return anything for the values.

A string. For example: FORMFILLPARAMS=First Name:fname:Bob,Last Name:lname:Smith,Credit Card:CC_NUMBER:123456789,Email:EMAIL:bob.smith@company.com,Address:Address:SomeWhereOnEarth Example: FORMFILLPARAMS=First Name:fname:,Last Name:lname:,Credit Card:CC_NUMBER:,Email:EMAIL:,Address:Address:

SUCCESSCODE

Yes

The success code indicates whether there was a successful request of information from the m-Wallet for the given labels and variable names.

The valid values are:

TRUE -- For successful data retrieval

FALSE --For Unsuccessful retrieval of data because the user cancelled or was or unable to retrieve dynamic mapping. For example:

  • SUCCESSCODE=TRUE

  • SUCCESSCODE=FALSE

19.6.1.8 Examples

For a the successful data retrieval for the application, FormFiller Demo, configure the parameters as follows:

An example of the unsuccessful retrieval of data for the application, FormFiller Demo, is as follows:

19.7 Creating a Billing Mechanism

Billing with Oracle9iAS Wireless is based on the service activity logging framework. The Activity Logger provides the logging framework used by the runtime components. Database logging is handled asynchronously because the runtime logging on the database carries a huge overhead. The runtime data is generated as files, which are less expensive. The data thus generated is picked up by the Performance Logger framework and written onto the database. When services are executed, the log tables contains a record with information of the user, timestamp, service name and the related values. Related values are values that can be associated with the service, such as a cost. The framework can be extended to create a custom cost-handling mechanism. For more information on logging activity, system logging tables and how to manage the logging system, refer to the Oracle9iAS Wireless Getting Started and System Guide.


Go to previous page Go to next page
Oracle
Copyright © 2002 Oracle Corporation.

All Rights Reserved.
Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index