Professional Documents
Culture Documents
Sprint Mobile Wallet Android Application Integration Guide
Sprint Mobile Wallet Android Application Integration Guide
c o m m e r c e
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, or
converted to any electronic or machine readable form without prior written consent of
CardinalCommerce Corporation.
Contact Information
CardinalCommerce Corporation
6119 Heisley Rd.
Mentor, OH 44060
USA
www.cardinalcommerce.com
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
TABLE OF CONTENTS
1 Overview..................................................................................................................4
2 Transaction Sequence........................................................................................... 5
3 Transaction API...................................................................................................... 6
3.1 Message Versions.................................................................................................................. 6
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
1 Overview
The Sprint Mobile Wallet provides mobile application developers a way to integrate the Cardinal MAX Mobile Payments Server [MPS]. Sprint Mobile Wallet allows for purchases to be
carried out within the application and provide a friendlier user experience as compared to directing 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-click
payment options on a user's mobile phone.
This document provides the sequence flow, integration specifications, sample messages and
test server credentials required by mobile application developers to integrate with the platform.
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
2 Transaction Sequence
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
3 Transaction API
Supported transaction messages for Mobile Payments Server.
Message Name
Description
cmpi_lookup
cmpi_authorize
cmpi_capture
Settle an order or previously authorized transaction and obtain payment for either the full or partial amount of the previous transaction.
cmpi_refund
cmpi_sale
cmpi_add_order_number
This message updates the merchants front end order number with
their backend order number in the Centinel system.
cmpi_payment_status
Message Version
Payment Initiative
1.7
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
<activity android:name =
"com.cardinalcommerce.android.thinclient.cardinalMPSCheckout" android:theme =
"@android:style/Theme.Dialog" android:label = "Sprint Mobile Wallet" />
<uses-permission android:name = "android.permission.READ_PHONE_STATE"></uses-permission>
<uses-permission android:name = "android.permission.INTERNET"></uses-permission>
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();
}
}
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
Minimum Requirements
1. Android SDK Tools r6
2. Eclipse or other IDT or Android development environment
3. Android app build target 2.2
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
Required
MsgType
cmpi_lookup
AN(50)
Version
AN(3)
ProcessorId
AN(20)
MerchantId
AN(50)
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
Field
Definition
TransactionPwd
AN(50)
TransactionType
AN(4)
N(20)
N(3)
N(20)
N(20)
CurrencyCode
ShippingAmount
TaxAmount
OrderNumber
AN(50)
OrderDescription
AN(125)
MerchantData
Merchant specified data that will be returned on the response. Limit 255 characters.
AN(255)
OrderChannel
AN(16)
AN(3)
A(1)
ANDROID
IPHONE
WAP
ProductCode
TransactionMode
Transaction mode identifier. Identifies the channel the transaction originates from, either Mail Order/Telephone Order,
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
Retail, or E-Commerce.
M - MOTO
R - Retail
S - E-Commerce
P - Mobile Device
Item_Name_X
AN(128)
Item_Desc_X
AN(256)
Item_Price_X
N(20)
N(20)
Item_SKU_X
AN(20)
IPAddress
AN(15)
UserAgent
AN(256)
BrowserHeader
AN(256)
Sample Message
<CardinalMPI>
<MsgType>cmpi_lookup</MsgType>
<Version>1.7</Version>
<ProcessorId>100</ProcessorId>
<MerchantId>123456</MerchantId>
<TransactionPwd>passw0rd</TransactionPwd>
<TransactionType>MPS</TransactionType>
<OrderNumber>182397541265</OrderNumber>
<Amount>2000</Amount>
<CurrencyCode>840</CurrencyCode>
<OrderDescription>Order #182397541265</OrderDescription>
<IPAddress>207.48.141.20</IPAddress>
<Item_Name_1>2GB MP3 Player</Item_Name_1>
<Item_Desc_1>The simple MP3 player</Item_Desc_1>
<Item_Price_1>1000</Item_Price_1>
<Item_Quantity_1>1</Item_Quantity_1>
<Item_SKU_1>112233</Item_SKU_1>
<Item_Name_2>100GB Hard Drive</Item_Name_2>
<Item_Desc_2>The New 100GB Hard Drive</Item_Desc_2>
<Item_Quantity_2>1</Item_Quantity_2>
<Item_Price_2>500</Item_Price_2>
<Item_SKU_2>444555666</Item_SKU_2>
</CardinalMPI>
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
Field
Definition
Required
ErrorNo
AN(500)
ErrorDesc
AN(500)
TransactionId
Centinel transaction identifier. This value identifies the transaction within the Centinel system.
AN(20)
OrderId
N(16)
MerchantData
AN(255)
OrderNumber
AN(50)
Enrolled
Status of availability.
AN(1)
Y - Service is available
U - Service is unavailable.
ACSUrl
AN(2083)
Payload
AN(7000)
ReasonCode
AN(50)
ReasonDesc
AN(256)
Sample Message
<CardinalMPI>
<ErrorNo>0</ErrorNo>
<ErrorDesc></ErrorDesc>
<TransactionId>dGxGw2fAviJEN7fbtQKh</TransactionId>
<OrderId>8086852480936891</OrderId>
<Payload>eNpVUk1TwjAQ/SsM402nSUuKwSC/3gSoH5PL</Payload>
<Enrolled>Y</Enrolled>
<ACSUrl>https://www.somewebsite.com/acs</ACSUrl>
<ReasonCode></ReasonCode>
<ReasonDesc></ReasonDesc>
</CardinalMPI>
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
11
5.2.1 cmpi_authorize
Authorize a transaction for fulfillment at a later time.
Request Message
Field Name
Description
Field
Definition
Required
MsgType
cmpi_authorize
AN(50)
Version
AN(3)
ProcessorId
AN(20)
MerchantId
AN(50)
TransactionPwd
AN(50)
TransactionType
AN(4)
Centinel generated order identifier. This value should correspond to the OrderId value returned on cmpi_lookup response transaction.
N(16)
Amount
N(20)
AN(20)
N(20)
TaxAmount
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
12
N(20)
N(3)
OrderNumber
AN(50)
OrderDescription
AN(125)
MerchantData
Merchant specified data that will be returned on the response. Limit 255 characters.
AN(255)
Field
Definition
Required
Sample Message
<CardinalMPI>
<MsgType>cmpi_authorize</MsgType>
<Version>1.7</Version>
<ProcessorId>100</ProcessorId>
<MerchantId>123456</MerchantId>
<TransactionPwd>Passw0rd</TransactionPwd>
<TransactionType>MPS</TransactionType>
<OrderId>8086852480936891</OrderId>
<Amount>500</Amount>
<AuthorizationCode>9oaYfobtuxXOa61Ggi9S</AuthorizationCode>
<CurrencyCode>840</CurrencyCode>
<OrderNumber>182397541265</OrderNumber>
<OrderDescription>Order #182397541265</OrderDescription>
</CardinalMPI>
Response Message
This message is generated in response to the cmpi_authorize message.
Field Name
Description
ErrorNo
AN(500)
ErrorDesc
AN(500)
StatusCode
AN(1)
Y Approved
P Pending
E Error
U Unavailable
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
13
TransactionId
AN(20)
OrderId
N(16)
AuthorizationCode
AN(6)
ReasonCode
AN(50)
AN(256)
OrderNumber
AN(50)
Sample Message
<CardinalMPI>
<ErrorNo>0</ErrorNo>
<ErrorDesc></ErrorDesc>
<StatusCode>Y</StatusCode>
<TransactionId>LpVA1U7PHIHP7dasV1Qq</TransactionId>
<OrderId>8902810382204711</OrderId>
<AuthorizationCode>AE12FJ</AuthorizationCode>
<ReasonCode>10002,10004</ReasonCode>
<ReasonDesc></ReasonDesc>
<OrderNumber></OrderNumber>
</CardinalMPI>
5.3.1 cmpi_capture
Settles an order or previously authorized transaction and obtains payment for either the full
or partial amount of the previous transaction.
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
14
Request Message
Field Name
Description
Field
Definition
Required
MsgType
cmpi_capture
AN(50)
Version
AN(3)
AN(20)
MerchantId
AN(50)
TransactionPwd
AN(50)
TransactionType
AN(4)
Centinel generated order identifier. This value should correspond to the OrderId value returned on cmpi_lookup response transaction.
N(16)
AuthorizationCode
AN(20)
Amount
N(20)
N(3)
OrderNumber
AN(50)
MerchantData
Merchant specified data that will be returned on the response. Limit 255 characters.
AN(255)
Description
AN(125)
Sample Message
<CardinalMPI>
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
15
<MsgType>cmpi_capture</MsgType>
<Version>1.7</Version>
<ProcessorId>100</ProcessorId>
<MerchantId>123456</MerchantId>
<TransactionPwd>Passw0rd</TransactionPwd>
<TransactionType>MPS</TransactionType>
<OrderId>8086852480936891</OrderId>
<Amount>34920</Amount>
<AuthorizationCode>9oaYfobtuxXOa61Ggi9S</AuthorizationCode>
<CurrencyCode>840</CurrencyCode>
<AuthorizationCode>AE12FJ</AuthorizationCode>
<Description>Goods Shipped to Consumer</Description>
</CardinalMPI>
Response Message
This message is generated in response to the cmpi_capture message.
Field Name
Description
Field
Definition
Required
ErrorNo
AN(500)
ErrorDesc
AN(500)
StatusCode
AN(1)
AN(20)
N(16)
AN(50)
Y Approved
P Pending
E Error
U Unavailable
TransactionId
OrderId
ReasonCode
AN(256)
ProcessorOrderNumber
AN(100)
ProcessorTransactionId
AN(100)
MerchantData
AN(255)
OrderNumber
AN(50)
Sample Message
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
16
<CardinalMPI>
<ErrorNo>0</ErrorNo>
<ErrorDesc></ErrorDesc>
<StatusCode>Y</StatusCode>
<TransactionId>7fDSaySnCmDGCjPglzqX</TransactionId>
<OrderId>8086852480936891</OrderId>
<ReasonCode>10002,10004</ReasonCode>
<ReasonDesc></ReasonDesc>
</CardinalMPI>
5.4.1 cmpi_refund
Refund specified amount to Consumer. The refund request must reference a transaction
already processed by the system.
Request Message
Field Name
Description
Field
Definition
Required
MsgType
cmpi_refund
AN(50)
Version
AN(3)
AN(20)
MerchantId
AN(50)
TransactionPwd
AN(50)
TransactionType
AN(4)
Centinel generated order identifier. This value should correspond to the OrderId value returned on cmpi_lookup response transaction.
N(16)
Amount
N(20)
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
17
CurrencyCode
N(3)
OrderNumber
AN(50)
MerchantData
Merchant specified data that will be returned on the response. Limit 255 characters.
AN(255)
Reason
AN(125)
AN(125)
Other - Default
NoInventory
CustomerReturn
GeneralAdjustment
CouldNotShip
DifferentItem
Abandoned
CustomerCancel
PriceError
ProductOutofStock
CustomerAddressIncorrect
Exchange
RiskAssessmentInformationNotValid
CarrierCoverageFailure
TransactionRecord
Description
Sample Message
<CardinalMPI>
<MsgType>cmpi_refund</MsgType>
<Version>1.7</Version>
<ProcessorId>100</ProcessorId>
<MerchantId>123456</MerchantId>
<TransactionPwd>Passw0rd</TransactionPwd>
<TransactionType>MPS</TransactionType>
<OrderId>8086852480936891</OrderId>
<Amount>34920</Amount>
<CurrencyCode>840</CurrencyCode>
<Description>Some Goods Returned</Description>
</CardinalMPI>
Response Message
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
18
Field Name
Description
Field
Definition
Required
ErrorNo
AN(500)
ErrorDesc
AN(500)
StatusCode
AN(1)
AN(20)
N(16)
Y Approved
P Pending
E Error
U Unavailable
TransactionId
OrderId
ReasonCode
AN(50)
ReasonDesc
AN(256)
ProcessorOrderNumber
AN(100)
ProcessorTransactionId
AN(100)
MerchantData
AN(255)
OrderNumber
AN(50)
Sample Message
<CardinalMPI>
<ErrorDesc></ErrorDesc>
<ErrorNo>0</ErrorNo>
<StatusCode>Y</StatusCode>
<TransactionId>7fDSaySnCmDGCjPglzqX</TransactionId>
<OrderId>8902810382204711</OrderId>
<ReasonCode></ReasonCode>
<ReasonDesc></ReasonDesc>
</CardinalMPI>
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 of
transaction is typically used when the merchant delivers the product at the time of the sale.
Request Message
Field Name
Description
Field
Definition
Required
MsgType
cmpi_sale
AN(50)
Version
AN(3)
AN(20)
MerchantId
AN(50)
TransactionPwd
AN(50)
TransactionType
AN(4)
Centinel generated order identifier. This value should correspond to the OrderId value returned on cmpi_lookup response transaction.
N(16)
Amount
N(20)
AN(20)
N(20)
N(20)
TaxAmount
ShippingAmount
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
20
CurrencyCode
N(3)
OrderNumber
AN(50)
OrderDescription
AN(125)
MerchantData
Merchant specified data that will be returned on the response. Limit 255 characters.
AN(255)
Field
Definition
Required
Sample Message
<CardinalMPI>
<MsgType>cmpi_sale</MsgType>
<Version>1.7</Version>
<ProcessorId>100</ProcessorId>
<MerchantId>123456</MerchantId>
<TransactionPwd>Passw0rd</TransactionPwd>
<TransactionType>MPS</TransactionType>
<OrderId>8086852480936891</OrderId>
<OrderNumber>182397541265</OrderNumber>
<OrderDescription>Order #182397541265</OrderDescription>
<Amount>56999</Amount>
<AuthorizationCode>9oaYfobtuxXOa61Ggi9S</AuthorizationCode>
<CurrencyCode>840</CurrencyCode>
</CardinalMPI>
Response Message
Description
ErrorNo
AN(500)
ErrorDesc
AN(500)
StatusCode
AN(1)
AN(20)
Y Approved
P Pending
E Error
U Unavailable
TransactionId
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
21
OrderId
N(16)
AuthorizationCode
AN(6)
ReasonCode
AN(50)
ReasonDesc
AN(256)
ProcessorOrderNumber
AN(100)
ProcessorTransactionId
AN(100)
MerchantData
AN(255)
OrderNumber
AN(50)
AVSResult
AN(2)
AN(2)
CardCodeResult
Sample Message
<CardinalMPI>
<ErrorNo>0</ErrorNo>
<ErrorDesc></ErrorDesc>
<StatusCode>Y</StatusCode>
<AVSResult>IN</AVSResult>
<CardCodeResult>Y</CardCodeResult>
<TransactionId>7fDSaySnCmDGCjPglzqX</TransactionId>
<OrderId>8902810382204711</OrderId>
<AuthorizationCode>AE12FJ</AuthorizationCode>
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
22
<ReasonCode>10002,10004</ReasonCode>
<ReasonDesc></ReasonDesc>
</CardinalMPI>
5.6.1 cmpi_add_order_number
This message updates the merchants front end order number with their backend order number in the Centinel system. The merchants original order number is peristed and searchable.
Request Message
Field Name
Description
Field
Definition
Required
MsgType
cmpi_add_order_number
AN(50)
Version
AN(3)
TransactionType
AN(4)
ProcessorId
AN(20)
MerchantId
AN(50)
TransactionPwd
AN(50)
OrderId
Centinel generated order identifier. Represents the value returned on the Lookup Response message.
AN(16)
OrderNumber
AN(255)
MerchantData
Merchant specified data that will be returned on the response. Limit 255 characters.
AN(255)
Sample Message
<CardinalMPI>
<MsgType>cmpi_add_order_number</MsgType>
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
23
<Version>1.7</Version>
<TransactionType>MPS</TransactionType>
<ProcessorId>100</ProcessorId>
<MerchantId>123456</MerchantId>
<TransactionPwd>Passw0rd</TransactionPwd>
<OrderId>8604929789808576</OrderId>
<OrderNumber>P6502-53-7861SBJD</OrderNumber>
</CardinalMPI>
Response Message
Description
Field
Definition
Required
ErrorNo
AN(500)
ErrorDesc
AN(500)
StatusCode
AN(2)
Y Approved
N Declined
E Error
U Unavailable
TransactionId
AN(20)
OrderId
AN(16)
OrderNumber
AN(50)
MerchantData
AN(255)
Sample Message
<CardinalMPI>
<ErrorNo>0</ErrorNo>
<ErrorDesc></ErrorDesc>
<StatusCode>Y</StatusCode>
<TransactionId>7fDSaySnCmDGCjPglzqX</TransactionId>
<OrderId>8604929789808576</OrderId>
</CardinalMPI>
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 disable Notification processing. If Notification processing is enabled and one of the scenarios is
encountered, a POST similar to the following will be sent to the Notification URL configured
within the Merchant's profile.
NotificationId=CCCDEIGDDDILGCGKO05M8KU9GH0KJA
MerchantId=123456
ProcessorId=100
TransactionType=MPS
Once the Merchant website receives the Notification Post, the cmpi_payment_status message should be invoked using the NotificationId to retrieve the transaction details from the
Centinel platform. Additional information regarding the processing of the Notification POST is
available within the Thin Client integration samples. The samples include all the code necessary to process the Notification POST and the cmpi_payment_status messages.
Using the samples the Notification handling can be quickly integrated to an existing ecommerce platform. Once the Notification is received, the Merchant will be able to make the determination 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 NotificationId
value. Centinel will notify the Merchant by Posting a request to the Notification Location configured within the Merchant's Centinel account. The request includes the NotificationId value
for use on the cmpi_payment_status message.
Request Message
Field Name
Description
Field
Definition
Required
MsgType
cmpi_payment_status
AN(50)
Version
AN(3)
AN(20)
MerchantId
AN(50)
TransactionPwd
AN(50)
TransactionType
AN(4)
AN(100)
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
25
Sample Message
<CardinalMPI>
<MsgType>cmpi_payment_status</MsgType>
<Version>1.7</Version>
<ProcessorId>100</ProcessorId>
<MerchantId>123456</MerchantId>
<TransactionPwd>Passw0rd</TransactionPwd>
<TransactionType>MPS</TransactionType>
<NotificationId>CCCDDCEHFHDJDGHCTBY3T54G4D72MT</NotificationId>
</CardinalMPI>
Response Message
Description
Required
ErrorNo
Application error number(s). A non-zero value represents the error encountered while attempting the process the message request.
ErrorDesc
ReasonDesc
ReasonCode
Y Transaction Approved
N Transaction Declined
E Transaction resulted in Error
U Payment brand is unavailable
TransactionId
OrderId
OrderDescription
NotificationType
ChargeNotification
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
26
OrderNumber
ShippingAmount
3 digit numeric, ISO 4217 currency code for the transaction amount. Complete list of ISO 4217 values is included in the Appendix.
Email address
BillingFirstName
BillingLastName
BillingCompanyName
BillingPhone
BillingAddress1
Address Information.
BillingAddress2
Address Information.
BillingCity
BillingState
BillingPostalCode
BillingCountryCode
Consumer's country code of the billing address. Alpha ISO 3166, for example US - United States, ZA - South Africa. Complete list of ISO 3166 values is included in the Appendix.
ShippingFirstName
ShippingLastName
ShippingCompanyName
ShippingPhone
ShippingAddress1
Address Information.
ShippingAddress2
Address Information.
ShippingCity
ShippingState
ShippingPostalCode
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 example US - United States, ZA - South Africa. Complete list of ISO 3166 values is included in the Appendix.
Item_Name_X
Item_Sku_X
Item_Desc_X
Item_Price_X
MerchantData
Merchant specified data that will be returned on the response. Limit 255
characters.
Sample Message
<CardinalMPI>
<ErrorDesc></ErrorDesc>
<ErrorNo>0</ErrorNo>
<TransactionId>7fDSaySnCmDGCjPglzqX</TransactionId>
<OrderId>8604929789808576</OrderId>
<ProcessorOrderNumber>12345678901234567890</ProcessorOrderNumber>
<NotificationType>OrderStateChangeNotification</NotificationType>
<ReasonCode></ReasonCode>
<ReasonDesc></ReasonDesc>
<StatusCode>Y</StatusCode>
<StatusDescription>Completed</StatusDescription>
<PaymentType>MPS</PaymentType>
<TransactionType>245</TransactionType>
<CurrencyCode>840</CurrencyCode>
<OrderNumber>182397541265</OrderNumber>
<OrderDescription>182397541265</OrderDescription>
<Amount>34920</Amount>
<EMail>mary.smith@email.com</EMail>
<BillingFirstName>Marylt;/BillingFirstName>
<BillingLastName>Smithlt;/BillingLastName>
<BillingAddress1>6362 Main Street</BillingAddress1>
<BillingAddress2></BillingAddress2>
<BillingCity>Cleveland</BillingCity>
<BillingState>OH</BillingState>
<BillingPostalCode>44124</BillingPostalCode>
<BillingCountryCode>US</BillingCountryCode>
<ShippingFirstame>Mary</ShippingFirstName>
<ShippingLastName>Smithlt;/ShippingLastName>
<ShippingAddress1>6362 Main Street</ShippingAddress1>
<ShippingAddress2></ShippingAddress2>
<ShippingCity>Cleveland</ShippingCity>
<ShippingState>OH</ShippingState>
<ShippingPostalCode>44124</ShippingPostalCode>
<ShippingCountryCode>US</ShippingCountryCode>
<Item_Name_1>2GB MP3 Player</Item_Name_1>
<Item_Desc_1>The simple MP3 player</Item_Desc_1>
<Item_Price_1>1000</Item_Price_1>
<Item_Quantity_1>1</Item_Quantity_1>
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
28
<Item_SKU_1>112233</Item_SKU_1>
<Item_Name_2>100GB Hard Drive</Item_Name_2>
<Item_Desc_2>The New 100GB Hard Drive</Item_Desc_2>
<Item_Quantity_2>1</Item_Quantity_2>
<Item_Price_2>500</Item_Price_2>
<Item_SKU_2>444555666</Item_SKU_2>
</CardinalMPI>
Android Application Integration Guide for Sprint Mobile Wallet (November 9, 2010)
29