centinel.integrationguide.smw android app

of 29/29
mobile commerce ® Sprint Mobile Wallet Android Application Integration Guide Version 1.0.0

Post on 13-Jul-2016

17 views

Category:

Documents

3 download

Embed Size (px)

DESCRIPTION

Sprint Centinel integration Guide Android

TRANSCRIPT

  • m o b i l e c o m m e r c e

    Sprint Mobile WalletAndroid Application

    Integration GuideVersion 1.0.0

  • Acknowledgements

    2010 by CardinalCommerce Corporation. All rights reserved.

    Trademark Information

    CardinalCommerce, Cardinal Centinel Authentication Software for Merchants, Cardinal MAX,and Centinel are trademarks of CardinalCommerce Corporation.

    All other trademarks are the properties of their respective owners.

    This manual may not, in whole or in part, be copied, photocopied, reproduced, translated, orconverted to any electronic or machine readable form without prior written consent ofCardinalCommerce Corporation.

    Contact Information

    CardinalCommerce Corporation6119 Heisley Rd.Mentor, OH 44060USAwww.cardinalcommerce.com

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)2

  • TABLE OF CONTENTS1 Overview..................................................................................................................4

    2 Transaction Sequence........................................................................................... 5

    3 Transaction API...................................................................................................... 63.1 Message Versions..................................................................................................................6

    4 SMW Android Transaction Client Integration Steps........................................... 6

    5 Mobile Payments Server Integration.................................................................... 85.1 Lookup Message Integration.................................................................................................. 8

    5.1.1 cmpi_lookup................................................................................................................... 85.2 Authorization Message Integration.......................................................................................12

    5.2.1 cmpi_authorize............................................................................................................. 125.3 Capture Message Integration............................................................................................... 14

    5.3.1 cmpi_capture................................................................................................................145.4 Refund Message Integration................................................................................................ 17

    5.4.1 cmpi_refund..................................................................................................................175.5 Sale Message Integration.....................................................................................................19

    5.5.1 cmpi_sale..................................................................................................................... 205.6 Add Merchant Order Number Message Integration............................................................. 23

    5.6.1 cmpi_add_order_number............................................................................................. 235.7 Status Message Integration..................................................................................................24

    5.7.1 cmpi_payment_status.................................................................................................. 25

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)3

  • 1 OverviewThe Sprint Mobile Wallet provides mobile application developers a way to integrate the Car-dinal MAX Mobile Payments Server [MPS]. Sprint Mobile Wallet allows for purchases to becarried out within the application and provide a friendlier user experience as compared to dir-ecting the end user to the WAP or Web purchase page of that particular retailer.

    Sprint Mobile Wallet aggregates payment methods and makes them available as one-clickpayment options on a user's mobile phone.

    This document provides the sequence flow, integration specifications, sample messages andtest server credentials required by mobile application developers to integrate with the plat-form.

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)4

  • 2 Transaction Sequence

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)5

  • 3 Transaction APISupported transaction messages for Mobile Payments Server.

    Message Name Description

    cmpi_lookup This message is used to initiate a payment.

    cmpi_authorize Authorize an order that can be fulfilled at a later time.

    cmpi_capture Settle an order or previously authorized transaction and obtain pay-ment for either the full or partial amount of the previous transaction.

    cmpi_refund This message performs a transaction refund. The message supportsFull and Partial refund transactions.

    cmpi_sale The Sale transaction performs an Authorization and Capture in asingle step. This type of transaction is typically used when the mer-chant delivers the product at the time of the sale.

    cmpi_add_order_number This message updates the merchants front end order number withtheir backend order number in the Centinel system.

    cmpi_payment_status This message provides post payment status updates to the Mer-chant.

    Note: Note that all API elements are case sensitive.

    3.1 Message VersionsThe following table details the currently support message versions:

    Message Version Payment Initiative

    1.7 Sprint Mobile Wallet - Mobile Payments Server

    4 SMW Android Transaction Client IntegrationSteps

    1. Download SMWCheckout.jar Android Library version latest .099 from the SMWOTA Site

    2. Add the SMWCheckout.jar to you android app development environment.3. Add the following entries to the Androidmanifest.xml

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)6

  • 4 In the client App add the following snippet to the event that invokes SMW.

    import com.cardinalcommerce.android.thinclient.*;

    transactionCache currentTxn = new transactionCache();currentTxn.setProcessorId("your processor Id");currentTxn.setMerchantId("your merchant Id");currentTxn.setTransactionPwd("your txn password");currentTxn.setTransactionUrl("https://sandbox.cardinalcommerce.com/maps/smps.asp");currentTxn.setProcessingFlag(cardinalConfiguration.TRANSACTION_PROCESSING_FULL);currentTxn.setOrderNumber(cardinalConfiguration.generateRandomOrderNumber(500,50000));currentTxn.setOrderDesc("Test Order from android client");currentTxn.setTxnAmount(109);currentTxn.setCurrencyCode("840");currentTxn.setPurchaseType(cardinalConfiguration.PURCHASE_TYPE_HARDGOODS);currentTxn.addProduct("ProductSKU", "Product Description",899,1);

    Intent iSMW = new Intent(SMWTester.this,cardinalMPSCheckout.class);iSMW.putExtra("currentTransaction", currentTxn);startActivityForResult(iSMW,0);

    public void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);

    currentTxn = (transactionCache) data.getExtras().get("currentTransaction");if (currentTxn.getStatus().equalsIgnoreCase(cardinalConfiguration.ORDER_STATUS_SUCCESS) == true){Toast.makeText(getBaseContext(), "Purchase Successful",Toast.LENGTH_SHORT).show();

    } else {Toast.makeText(getBaseContext(), "Purchase Failed: (" + currentTxn.getErrorNo()+ ") " + currentTxn.getErrorDesc(), Toast.LENGTH_LONG).show();

    }

    }

    Note: Processing Flag Possible Values and MeaningsTRANSACTION_PROCESSING_FULL - Android Client will call lookup, subscriber authentication,payment selection, cmpi_saleTRANSACTION_PROCESSING_SUBSCRIBER - Android Client will call subscriber authentication,payment selection. Requires requestToken to be set in the transactionCache. responseToken willbe returned in the activity.

    5 Compile and Test the Application

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)7

  • Minimum Requirements1. Android SDK Tools r62. Eclipse or other IDT or Android development environment3. Android app build target 2.2

    5 Mobile Payments Server IntegrationURL:Sandbox - http://sandbox.cardinalcommerce.com/MAPS/smps.aspTest - Provided by Merchant SupportProduction - Provided by Merchant Support

    5.1 Lookup Message IntegrationThe Lookup message (cmpi_lookup) is responsible for initiating the Mobile Payments Serverpayment. The integration point for the Lookup Message is from the checkout page.

    The Lookup Message is constructed and sent to the Centinel MAPS for processing. TheLookup Message requires transaction specific data elements to be formatted on the requestmessage. Please refer to the Message API section for the complete list of required messageelements.

    The Lookup response message is returned from the Centinel MAPS, and the merchant in-vokes the Thin Client API to reference the response values. In the event that the Enrolledvalue is Y the ACSUrl element will contain a fully qualified URL that the consumer should beredirected to initiate the Mobile Payments Server payment.

    5.1.1 cmpi_lookup

    Note: An additional request header must be added to this request.Header Name: "MDN"Header Value: 10 Digit Phone Number

    Request Message

    Field Name Description FieldDefinition

    Required

    MsgType cmpi_lookup AN(50) Y

    Version Application message version identifier.Current Version - 1.7

    AN(3) Y

    ProcessorId Merchant processor identification code. This value is as-signed to the Merchant.

    AN(20) Y

    MerchantId Merchant identification code. This value is assigned to theMerchant.

    AN(50) Y

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)8

  • TransactionPwd A password to secure and verify the transaction originatedfrom merchant represented by the transaction details. Thepassword value is configured through the merchant profile.Limit 50 characters

    AN(50) Y

    TransactionType Identifies the Transaction Type used for processing.

    MPS Mobile Payments Server

    AN(4) Y

    Amount Unformatted total transaction amount without any decimaliz-ation.

    For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    N(20) Y

    CurrencyCode 3 digit numeric, ISO 4217 currency code for the transactionamount.

    Supported Currency Codes

    840 - U.S. Dollar

    N(3) Y

    ShippingAmount Unformatted shipping amount of order without any decimaliz-ation.

    For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    N(20) N

    TaxAmount Unformatted tax amount of order without any decimalization.

    For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    N(20) N

    OrderNumber Order Number or transaction identifier from the Merchantcommerce website. Limit 50 characters.

    AN(50) Y

    OrderDescription Brief description of items purchased. Limit 125 characters. AN(125) N

    MerchantData Merchant specified data that will be returned on the re-sponse. Limit 255 characters.

    AN(255) N

    OrderChannel Specifies the order channel where the transaction was initi-ated

    ANDROIDIPHONEWAP

    AN(16) N

    ProductCode Specifies the product code for the transaction.

    PHY - Physical DeliveryCNC - Cash and CarryDIG - Digital GoodSVC - ServiceTBD - Other

    AN(3) N

    TransactionMode Transaction mode identifier. Identifies the channel the trans-action originates from, either Mail Order/Telephone Order,

    A(1) N

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)9

  • Retail, or E-Commerce.

    M - MOTOR - RetailS - E-CommerceP - Mobile Device

    Item_Name_X Name of item purchased. AN(128) Y

    Item_Desc_X Brief description of item. AN(256) Y

    Item_Price_X Unformatted price of item X transaction amount without anydecimalization.

    For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    N(20) Y

    Item_Quantity_X Number of items purchased. N(20) Y

    Item_SKU_X Item SKU number. AN(20) Y

    IPAddress The IP Address of the Consumer. FormatNNN.NNN.NNN.NNN

    AN(15) N

    UserAgent The exact content of the HTTP user-agent header. AN(256) N

    BrowserHeader The exact content of the HTTP accept header. AN(256) N

    Sample Message

    cmpi_lookup1.7100123456passw0rdMPS1823975412652000840Order #182397541265207.48.141.202GB MP3 PlayerThe simple MP3 player10001112233100GB Hard DriveThe New 100GB Hard Drive1500444555666

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)10

  • Response Message

    This message is generated as a response to the cmpi_lookup message.

    Field Name Description FieldDefinition

    Required

    ErrorNo Application error number(s). A non-zero value represents theerror encountered while attempting to process the messagerequest.

    AN(500) Y

    ErrorDesc Application error description for the associated error num-ber(s).

    AN(500) Y

    TransactionId Centinel transaction identifier. This value identifies the trans-action within the Centinel system.

    AN(20) Y

    OrderId Centinel generated order identifier. N(16) N

    MerchantData Contains the value passed in on the request. AN(255) N

    OrderNumber Contains the value passed in on the request. AN(50) N

    Enrolled Status of availability.

    Y - Service is availableU - Service is unavailable.

    AN(1) Y

    ACSUrl The fully qualified URL to redirect the Consumer to completethe transaction. Available if Enrolled = Y.

    AN(2083) N

    Payload The encoded payment request generated by the Centinelplatform. Available if Enrolled = Y.

    AN(7000) N

    ReasonCode Reason Code(s) obtained from the processing network. Inthe event of a transaction failure or error, the field willprovide the exact reason codes from the processing network.

    AN(50) N

    ReasonDesc Reason descriptions obtained from the processing network.In the event of a transaction failure or error, this field maycontain additional information as to the cause of the error.

    AN(256) N

    Sample Message

    0

    dGxGw2fAviJEN7fbtQKh8086852480936891eNpVUk1TwjAQ/SsM402nSUuKwSC/3gSoH5PLYhttps://www.somewebsite.com/acs

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)11

  • 5.2 Authorization Message IntegrationThe Authorization message (cmpi_authorize) is responsible for authorizing the ExpressCheckout transaction. Once authorized, the transaction amount can be captured at a laterpoint in time.

    Note: Merchant can run cmpi_authorization / cmpi_capture pair or run a cmpi_sale

    5.2.1 cmpi_authorize

    Authorize a transaction for fulfillment at a later time.

    Request Message

    Field Name Description FieldDefinition

    Required

    MsgType cmpi_authorize AN(50) Y

    Version Application message version identifier.Current Version - 1.7

    AN(3) Y

    ProcessorId Merchant processor identification code. This value is as-signed to the Merchant.

    AN(20) Y

    MerchantId Merchant identification code. This value is assigned to theMerchant.

    AN(50) Y

    TransactionPwd A password to secure and verify the transaction originatedfrom merchant represented by the transaction details. Thepassword value is configured through the merchant profile.Limit 50 characters

    AN(50) Y

    TransactionType Identifies the Transaction Type used for processing.

    MPS Mobile Payment Server

    AN(4) Y

    OrderId Centinel generated order identifier. This value should corres-pond to the OrderId value returned on cmpi_lookup re-sponse transaction.

    N(16) Y

    Amount Unformatted total transaction amount without any decimaliz-ation.

    For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    N(20) Y

    AuthorizationCode Response Token returned when Consumer is returned backto merchants TermUrl

    AN(20) N

    TaxAmount Unformatted tax amount without any decimalization. N(20) N

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)12

  • For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    ShippingAmount Unformatted shipping amount without any decimalization.

    For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    N(20) N

    CurrencyCode 3 digit numeric, ISO 4217 currency code for the transactionamount.

    Supported Currency Codes

    840 - U.S. Dollar

    N(3) Y

    OrderNumber Order Number from the merchant commerce website. AN(50) Y

    OrderDescription Brief description of items purchased, limited to 125 charac-ters.

    AN(125) N

    MerchantData Merchant specified data that will be returned on the re-sponse. Limit 255 characters.

    AN(255) N

    Sample Message

    cmpi_authorize1.7100123456Passw0rdMPS80868524809368915009oaYfobtuxXOa61Ggi9S840182397541265Order #182397541265

    Response Message

    This message is generated in response to the cmpi_authorize message.

    Field Name Description FieldDefinition

    Required

    ErrorNo Application error number. A non-zero value represents theerror encountered while attempting the process the messagerequest.

    AN(500) Y

    ErrorDesc Application error description for the associated error number. AN(500) Y

    StatusCode Status Result of the transaction.

    Y ApprovedP PendingE ErrorU Unavailable

    AN(1) Y

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)13

  • TransactionId Centinel generated transaction identifier. AN(20) Y

    OrderId Centinel generated order identifier. N(16) N

    AuthorizationCode Response Token returned when Consumer is returned backto merchants TermUrl

    AN(6) N

    ReasonCode Reason Code(s) obtained from the processing network. Inthe event of a transaction failure or error, the field willprovide the exact reason codes from the processing network.Example : 10002, 10004

    AN(50) N

    ReasonDesc Reason descriptions obtained from the processing network.In the event of a transaction failure or error, this field maycontain additional information as to the cause of the error.

    AN(256) N

    OrderNumber Contains the value passed in on the request. AN(50) N

    Sample Message

    0

    YLpVA1U7PHIHP7dasV1Qq8902810382204711AE12FJ10002,10004

    5.3 Capture Message IntegrationThe Capture message (cmpi_capture) is responsible for settling funds from a previous au-thorization.

    Note: Merchant can run cmpi_authorization / cmpi_capture pair or run a cmpi_sale

    5.3.1 cmpi_capture

    Settles an order or previously authorized transaction and obtains payment for either the fullor partial amount of the previous transaction.

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)14

  • Request Message

    Field Name Description FieldDefinition

    Required

    MsgType cmpi_capture AN(50) Y

    Version Application message version identifier.

    Current Version - 1.7

    AN(3) Y

    ProcessorId Merchant processor identification code. This value is as-signed to the Merchant.

    AN(20) Y

    MerchantId Merchant identification code. This value is assigned to theMerchant.

    AN(50) Y

    TransactionPwd A password to secure and verify the transaction originatedfrom merchant represented by the transaction details. Thepassword value is configured through the merchant profile.

    AN(50) Y

    TransactionType Identifies the Transaction Type used for processing.

    MPS Mobile Payments Server

    AN(4) Y

    OrderId Centinel generated order identifier. This value should corres-pond to the OrderId value returned on cmpi_lookup re-sponse transaction.

    N(16) Y

    AuthorizationCode Response Token returned when Consumer is returned backto merchants TermUrl

    AN(20) N

    Amount Unformatted total transaction amount without any decimaliz-ation.

    For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    N(20) Y

    CurrencyCode 3 digit numeric, ISO 4217 currency code for the transactionamount.

    Supported Currency Codes

    840 - U.S. Dollar

    N(3) Y

    OrderNumber Order Number from the merchant commerce website. AN(50) N

    MerchantData Merchant specified data that will be returned on the re-sponse. Limit 255 characters.

    AN(255) N

    Description Brief description of items purchased, limited to 125 charac-ters.

    AN(125) N

    Sample Message

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)15

  • cmpi_capture1.7100123456Passw0rdMPS8086852480936891349209oaYfobtuxXOa61Ggi9S840AE12FJGoods Shipped to Consumer

    Response Message

    This message is generated in response to the cmpi_capture message.

    Field Name Description FieldDefinition

    Required

    ErrorNo Application error number. A non-zero value represents theerror encountered while attempting the process the messagerequest.

    AN(500) Y

    ErrorDesc Application error description for the associated error number. AN(500) Y

    StatusCode Status Result of the transaction.

    Y ApprovedP PendingE ErrorU Unavailable

    AN(1) Y

    TransactionId Centinel generated transaction identifier. AN(20) Y

    OrderId Centinel generated order identifier. N(16) N

    ReasonCode Reason Code(s) obtained from the processing network. Inthe event of a transaction failure or error, the field willprovide the exact reason codes from the processing network.Example : 10002, 10004

    AN(50) N

    ReasonDesc Reason descriptions obtained from the processing network.In the event of a transaction failure or error, this field maycontain additional information as to the cause of the error.

    AN(256) N

    ProcessorOrderNumber Processor Order Identifier associated with the order AN(100) N

    ProcessorTransactionId Processor Transaction Identifier associated with the transac-tion

    AN(100) N

    MerchantData Contains the value passed in on the request. AN(255) N

    OrderNumber Contains the value passed in on the request. AN(50) N

    Sample Message

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)16

  • 0

    Y7fDSaySnCmDGCjPglzqX808685248093689110002,10004

    5.4 Refund Message IntegrationThe Refund message (cmpi_refund) is responsible for crediting the consumer some portionof the original settlement amount. Multiple refunds can be processed against the original cap-ture or sale transaction.

    5.4.1 cmpi_refund

    Refund specified amount to Consumer. The refund request must reference a transactionalready processed by the system.

    Request Message

    Field Name Description FieldDefinition

    Required

    MsgType cmpi_refund AN(50) Y

    Version Application message version identifier.

    Current Version - 1.7

    AN(3) Y

    ProcessorId Merchant processor identification code. This value is as-signed to the Merchant.

    AN(20) Y

    MerchantId Merchant identification code. This value is assigned to theMerchant.

    AN(50) Y

    TransactionPwd A password to secure and verify the transaction originatedfrom merchant represented by the transaction details. Thepassword value is configured through the merchant profile.

    AN(50) Y

    TransactionType Identifies the Transaction Type used for processing.

    MPS Mobile Payments Server

    AN(4) Y

    OrderId Centinel generated order identifier. This value should corres-pond to the OrderId value returned on cmpi_lookup re-sponse transaction.

    N(16) Y

    Amount Unformatted total transaction amount without any decimaliz-ation.

    N(20) Y

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)17

  • For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    CurrencyCode 3 digit numeric, ISO 4217 currency code for the transactionamount.

    Supported Currency Codes

    840 - U.S. Dollar

    N(3) Y

    OrderNumber Order Number from the merchant commerce website. AN(50) N

    MerchantData Merchant specified data that will be returned on the re-sponse. Limit 255 characters.

    AN(255) N

    Reason Brief reason of refund, limited to 125 characters.

    Other - DefaultNoInventoryCustomerReturnGeneralAdjustmentCouldNotShipDifferentItemAbandonedCustomerCancelPriceErrorProductOutofStockCustomerAddressIncorrectExchangeRiskAssessmentInformationNotValidCarrierCoverageFailureTransactionRecord

    AN(125) N

    Description Brief description of the transaction, limited to 125 characters. AN(125) N

    Sample Message

    cmpi_refund1.7100123456Passw0rdMPS808685248093689134920840Some Goods Returned

    Response Message

    This message is generated in response to the cmpi_refund message.

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)18

  • Field Name Description FieldDefinition

    Required

    ErrorNo Application error number(s). A non-zero value represents theerror encountered while attempting the process the messagerequest.

    AN(500) Y

    ErrorDesc Application error description for the associated error num-ber(s).

    AN(500) Y

    StatusCode Status Result of the transaction.

    Y ApprovedP PendingE ErrorU Unavailable

    AN(1) Y

    TransactionId Centinel generated transaction identifier. AN(20) Y

    OrderId Centinel generated order identifier. N(16) N

    ReasonCode Reason Code(s) obtained from the processing network. Inthe event of a transaction failure or error, the field willprovide the exact reason codes from the processing network.Example : 10002, 10004

    AN(50) N

    ReasonDesc Reason descriptions obtained from the processing network.In the event of a transaction failure or error, this field maycontain additional information as to the cause of the error.

    AN(256) N

    ProcessorOrderNumber Processor Order Identifier associated with the order AN(100) N

    ProcessorTransactionId Processor Transaction Identifier associated with the transac-tion

    AN(100) N

    MerchantData Contains the value passed in on the request. AN(255) N

    OrderNumber Contains the value passed in on the request. AN(50) N

    Sample Message

    0Y7fDSaySnCmDGCjPglzqX8902810382204711

    5.5 Sale Message IntegrationThe Sale message (cmpi_sale) is responsible for authorizing and settling funds within the

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)19

  • same transaction.

    Note: Merchant can run cmpi_authorization / cmpi_capture pair or run a cmpi_sale

    5.5.1 cmpi_sale

    The Sale transaction performs an authorization and capture in a single step. This type oftransaction is typically used when the merchant delivers the product at the time of the sale.

    Request Message

    Field Name Description FieldDefinition

    Required

    MsgType cmpi_sale AN(50) Y

    Version Application message version identifier.

    Current Version - 1.7

    AN(3) Y

    ProcessorId Merchant processor identification code. This value is as-signed to the Merchant.

    AN(20) Y

    MerchantId Merchant identification code. This value is assigned to theMerchant.

    AN(50) Y

    TransactionPwd A password to secure and verify the transaction originatedfrom merchant represented by the transaction details. Thepassword value is configured through the merchant profile.

    AN(50) Y

    TransactionType Identifies the Transaction Type used for processing.

    MPS Mobile Payments Server

    AN(4) Y

    OrderId Centinel generated order identifier. This value should corres-pond to the OrderId value returned on cmpi_lookup re-sponse transaction.

    N(16) Y

    Amount Value represents the transaction amount without any decim-alization or punctuation.

    Examples $123.67 - 12367, $1,500.00 - 150000

    N(20) Y

    AuthorizationCode Response Token returned when Consumer is returned backto merchants TermUrl

    AN(20) N

    TaxAmount Unformatted tax amount without any decimalization.

    For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    N(20) N

    ShippingAmount Unformatted shipping amount without any decimalization.

    For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    N(20) N

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)20

  • CurrencyCode 3 digit numeric, ISO 4217 currency code for the transactionamount.

    Supported Currency Codes

    840 - U.S. Dollar

    N(3) Y

    OrderNumber Order Number from the merchant commerce website. AN(50) Y

    OrderDescription Brief description of items purchased, limited to 125 charac-ters.

    AN(125) N

    MerchantData Merchant specified data that will be returned on the re-sponse. Limit 255 characters.

    AN(255) N

    Sample Message

    cmpi_sale1.7100123456Passw0rdMPS8086852480936891182397541265Order #182397541265569999oaYfobtuxXOa61Ggi9S840

    Response Message

    This message is generated in response to the cmpi_sale message.

    Field Name Description FieldDefinition

    Required

    ErrorNo Application error number(s). A non-zero value represents theerror encountered while attempting the process the messagerequest.

    AN(500) Y

    ErrorDesc Application error description for the associated error num-ber(s).

    AN(500) Y

    StatusCode Status Result of the transaction.

    Y ApprovedP PendingE ErrorU Unavailable

    AN(1) Y

    TransactionId Centinel generated transaction identifier. AN(20) Y

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)21

  • OrderId Centinel generated order identifier. N(16) N

    AuthorizationCode Authorization identifier returned from the processing network. AN(6) N

    ReasonCode Reason Code(s) obtained from the processing network. Inthe event of a transaction failure or error, the field willprovide the exact reason codes from the processing network.Example : 10002, 10004

    AN(50) N

    ReasonDesc Reason descriptions obtained from the processing network.In the event of a transaction failure or error, this field maycontain additional information as to the cause of the error.

    AN(256) N

    ProcessorOrderNumber Processor Order Identifier associated with the order AN(100) N

    ProcessorTransactionId Processor Transaction Identifier associated with the transac-tion

    AN(100) N

    MerchantData Contains the value passed in on the request. AN(255) N

    OrderNumber Contains the value passed in on the request. AN(50) N

    AVSResult AVS result code returned from processing network.

    A Matched - Address Only (No Postal Code)E ErrorN None MatchedP Not ApplicableR Retry, system unavailable or timed outS Service Not SupportedU UnavailableW Matched - Nine-Digit Postal Code (No Address)X Matched - Nine-Digit Postal Code and AddressY Matched - Five-Digit Postal Code and AddressZ Matched - Five-Digit Postal Code (No Address)

    AN(2) N

    CardCodeResult Indicates the results of Card Code (CVV2,CVC2,CID) verific-ation.

    E ErrorN No MatchP Not ApplicableR Retry, system unavailable or timed outS Service Not SupportedU UnavailableY Match

    AN(2) Y

    Sample Message

    0

    YINY7fDSaySnCmDGCjPglzqX8902810382204711AE12FJ

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)22

  • 10002,10004

    5.6 Add Merchant Order Number Message IntegrationThe Add Merchant Order Number message (cmpi_add_order_number) updates the mer-chants front end order number with their backend order number in the Centinel system. Thiscommand does not impact the order's fulfillment state.

    5.6.1 cmpi_add_order_number

    This message updates the merchants front end order number with their backend order num-ber in the Centinel system. The merchants original order number is peristed and searchable.

    Request Message

    Field Name Description FieldDefinition

    Required

    MsgType cmpi_add_order_number AN(50) Y

    Version Application message version identifier. "1.7". AN(3) Y

    TransactionType Identifies the Transaction Type used for processing.

    MPS Mobile Payments Server

    AN(4) Y

    ProcessorId Merchant processor identification code. This value is as-signed to the Merchant.

    AN(20) Y

    MerchantId Merchant identification code. This value is assigned to theMerchant.

    AN(50) Y

    TransactionPwd A password to secure and verify the transaction originatedfrom merchant represented by the transaction details. Thepassword value is configured through the merchant profile.

    AN(50) Y

    OrderId Centinel generated order identifier. Represents the value re-turned on the Lookup Response message.

    AN(16) N

    OrderNumber Contains the order number that you have assigned to an or-der.

    AN(255) N

    MerchantData Merchant specified data that will be returned on the re-sponse. Limit 255 characters.

    AN(255) N

    Sample Message

    cmpi_add_order_number

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)23

  • 1.7MPS100123456Passw0rd8604929789808576P6502-53-7861SBJD

    Response Message

    This message is generated in response to the cmpi_add_order_number message.

    Field Name Description FieldDefinition

    Required

    ErrorNo Application error number(s). A non-zero value represents theerror encountered while attempting the process the messagerequest.

    AN(500) Y

    ErrorDesc Application error description for the associated error num-ber(s).

    AN(500) Y

    StatusCode Status Result of the transaction.

    Y ApprovedN DeclinedE ErrorU Unavailable

    AN(2) Y

    TransactionId Centinel generated transaction identifier. AN(20) Y

    OrderId Centinel generated order identifier. AN(16) N

    OrderNumber Contains the value passed in on the request. AN(50) N

    MerchantData Contains the value passed in on the request. AN(255) N

    Sample Message

    0

    Y7fDSaySnCmDGCjPglzqX8604929789808576

    5.7 Status Message IntegrationCentinel monitors each Merchant's activity to ensure that the Merchant system is in sync withthe order and payment activity within the payment processor. In the event that one of the fol-lowing events is encountered, the Centinel platform will send a Notification to the Merchant.

    ChargeNotification

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)24

  • The Notification POST is dependent on the Merchant Profile configuration to enable or dis-able Notification processing. If Notification processing is enabled and one of the scenarios isencountered, a POST similar to the following will be sent to the Notification URL configuredwithin the Merchant's profile.

    NotificationId=CCCDEIGDDDILGCGKO05M8KU9GH0KJAMerchantId=123456ProcessorId=100TransactionType=MPS

    Once the Merchant website receives the Notification Post, the cmpi_payment_status mes-sage should be invoked using the NotificationId to retrieve the transaction details from theCentinel platform. Additional information regarding the processing of the Notification POST isavailable within the Thin Client integration samples. The samples include all the code neces-sary to process the Notification POST and the cmpi_payment_status messages.

    Using the samples the Notification handling can be quickly integrated to an existing ecom-merce platform. Once the Notification is received, the Merchant will be able to make the de-termination to ship the goods to the consumer.

    5.7.1 cmpi_payment_status

    This message is used to request the status of the transaction referenced by the NotificationIdvalue. Centinel will notify the Merchant by Posting a request to the Notification Location con-figured within the Merchant's Centinel account. The request includes the NotificationId valuefor use on the cmpi_payment_status message.

    Request Message

    Field Name Description FieldDefinition

    Required

    MsgType cmpi_payment_status AN(50) Y

    Version Application message version identifier.

    Current Version - 1.7

    AN(3) Y

    ProcessorId Merchant processor identification code. This value is as-signed to the Merchant.

    AN(20) Y

    MerchantId Merchant identification code. This value is assigned to theMerchant.

    AN(50) Y

    TransactionPwd A password to secure and verify the transaction originatedfrom Merchant represented by the transaction details. Thepassword value is configured through the Merchant profile.

    AN(50) Y

    TransactionType Identifies the Transaction Type used for processing.

    MPS Mobile Payments Server

    AN(4) Y

    NotificationId Notification Id. This value is required to be passed on the AN(100) Y

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)25

  • cmpi_payment_status message to identify the correspondingMoneybookers transaction. This value is provided throughthe HTTP POST Notification sent to the Merchant.

    Sample Message

    cmpi_payment_status1.7100123456Passw0rdMPSCCCDDCEHFHDJDGHCTBY3T54G4D72MT

    Response Message

    This message is generated in response to the cmpi_payment_status message:

    Field Name Description Required

    ErrorNo Application error number(s). A non-zero value represents the error en-countered while attempting the process the message request.

    Y

    ErrorDesc Application error description for the associated error number(s). Y

    ReasonDesc Reason Description obtained from Processor. In the event of a transactionfailure or error, the field will provide the exact reason codes from the Pro-cessor.

    N

    ReasonCode Reason Code(s) obtained from the processing network. In the event of atransaction failure or error, the field will provide the exact reason codes fromthe processing network.

    Example : 10002, 10004

    N

    StatusCode Status Result of the transaction.

    Y Transaction ApprovedN Transaction DeclinedE Transaction resulted in ErrorU Payment brand is unavailable

    Y

    TransactionId MAX generated transaction identifier. Y

    OrderId MAX generated order identifier. Y

    OrderDescription Brief description of items purchased. Limit 125 characters. N

    NotificationType Notification type identifier.

    ChargeNotification

    Y

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)26

  • OrderNumber Order Number from the merchant ecommerce website. Y

    ShippingAmount Value represents the shipping amount with decimalization.

    Examples $123.67 - 123.67, $1,500.00 - 1500.00

    Y

    TaxAmount Value represents the tax amount with any decimalization.

    Example $12.67 - 12.67

    Y

    CurrencyCode 3 digit numeric, ISO 4217 currency code for the transaction amount. Com-plete list of ISO 4217 values is included in the Appendix.

    840 - U.S. Dollar

    Y

    MobilePhone Mobile Phone Number N

    EMail Email address N

    BillingFirstName Consumer's first name. N

    BillingLastName Consumer's last name. N

    BillingCompanyName Consumer's company name. N

    BillingPhone Consumer's billing phone number. N

    BillingAddress1 Address Information. N

    BillingAddress2 Address Information. N

    BillingCity Consumer's city of the billing address. N

    BillingState Consumer's state or province of the billing address. N

    BillingPostalCode Address postal code. Limit 10 characters. N

    BillingCountryCode Consumer's country code of the billing address. Alpha ISO 3166, for ex-ample US - United States, ZA - South Africa. Complete list of ISO 3166 val-ues is included in the Appendix.

    N

    ShippingFirstName Consumer's first name. N

    ShippingLastName Consumer's last name. N

    ShippingCompanyName Consumer's company name. N

    ShippingPhone Consumer's shipping phone number. N

    ShippingAddress1 Address Information. N

    ShippingAddress2 Address Information. N

    ShippingCity Consumer's city in the shipping address. N

    ShippingState Consumer's state or province of the shipping address. N

    ShippingPostalCode Address postal code. N

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)27

  • ShippingCountryCode Consumer's country code of the shipping address. Alpha ISO 3166, for ex-ample US - United States, ZA - South Africa. Complete list of ISO 3166 val-ues is included in the Appendix.

    N

    Item_Name_X Name of item purchased. N

    Item_Sku_X Item SKU number. N

    Item_Desc_X Brief description of item. N

    Item_Price_X Unformatted price of item X transaction amount without any decimalization.

    For example, $100.00 = 10000, $123.67 = 12367, $.99 = 99

    N

    Item_Quantity_X Number of ptems purchased. N

    MerchantData Merchant specified data that will be returned on the response. Limit 255characters.

    N

    Sample Message

    07fDSaySnCmDGCjPglzqX860492978980857612345678901234567890OrderStateChangeNotification

    [email protected].comMarylt;/BillingFirstName>Smithlt;/BillingLastName>6362 Main Street

    ClevelandOH44124USMarySmithlt;/ShippingLastName>6362 Main Street

    ClevelandOH44124US2GB MP3 PlayerThe simple MP3 player10001

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)28

  • 112233100GB Hard DriveThe New 100GB Hard Drive1500444555666

    Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)29

    1 Overview2 Transaction Sequence3 Transaction API3.1 Message Versions

    4 SMW Android Transaction Client Integration Steps5 Mobile Payments Server Integration5.1 Lookup Message Integration5.1.1 cmpi_lookup

    5.2 Authorization Message Integration5.2.1 cmpi_authorize

    5.3 Capture Message Integration5.3.1 cmpi_capture

    5.4 Refund Message Integration5.4.1 cmpi_refund

    5.5 Sale Message Integration5.5.1 cmpi_sale

    5.6 Add Merchant Order Number Message Integration5.6.1 cmpi_add_order_number

    5.7 Status Message Integration5.7.1 cmpi_payment_status