Phone Number
You can retrieve a 10-digit phone number from the customer.
Code Samples
CWS
Request
Property | Description |
---|---|
method string | required | startPhoneEntryOnCardReader |
requestId string | required | Request ID |
targetType string | required | cardReader |
version string | required | 1.0 |
parameters JSONObject | optional | All relevant parameters. |
paymentGatewayId string | required | Payment Gateway ID Unique identifier of the payment gateway as returned in the openPaymentGateway transaction response. |
Response
Property | Description |
---|---|
requestId string | Request ID As specified in the request. |
statusDetails string | Request Status |
data JSONObject | Object holding various responses |
phoneData JSONObject | Phone Data Object containing phone number |
number string | Phone Number |
Request
{
"method" : "startPhoneEntryOnCardReader",
"requestId" : "1669463288",
"targetType" : "cardReader",
"version" : "1.0",
"parameters" : {
}
}
Later to query the status of the request
{
"method" : "getCommandStatusOnCardReader",
"requestId" : "1669463292",
"targetType" : "cardReader",
"version" : "1.0",
"parameters" : {
"id" : "1669463288"
}
}
Response
Initial response
{
"method" : "getCommandStatusOnCardReader",
"requestId" : "1669463292",
"targetType" : "cardReader",
"version" : "1.0",
"parameters" : {
"id" : "1669463288"
}
}
Complete response
{
"requestId" : "1669463292",
"statusDetails" : "REQUEST_ACCEPTED",
"data" : {
"cardReaderCommand" : {
"eventQueue" : [ {
"timeStamp" : "1477519715293",
"statusDetails" : "..._COMPLETED"
} ],
"id" : "1669463288",
"phoneData" : {
"number" : "9998887777"
},
"completed" : true
}
}
}
Java
// use local copy of ECLCardReaderInterface named cardReaderInterface
cardReaderInterface.retrieveUserInput(new ECLCardReaderOperationListener<String>()
{
@Override
public void deviceOperationCompleted(ECLCardReaderInterface cardReader, String phoneNumber)
{
/* Use phoneNumber result */
}
@Override
public void deviceOperationError(ECLCardReaderInterface cardReader, ECCError error)
{
/* Handle error */
}
@Override
public void deviceOperationProgress(ECLCardReaderInterface cardReader, ECLTransactionProgress progress)
{
logger.info("cardReaderProgress " + progress.toString());
}
}, ECLCardReaderUserInputType.PHONE_NUMBER);
Objective-C
// Card reader instance
id<ECLCardReaderProtocol> cardReader;
[cardReader retrieveUserInput:self inputType:inputType];
// Implement ECLCardReaderRetrieveUserInputDelegate callback methods
+ (void)cardReaderRetrieveUserInput:(id<ECLCardReaderProtocol>)cardReader providedInput:(ECLCardReaderUserInput *)userInputResult
{
/* Use userInputResult */
}
+ (void)cardReaderRetrieveUserInput:(id<ECLCardReaderProtocol>)cardReader error:(NSError *)error
{
/* Handle error */
}
+ (void)cardReaderRetrieveUserInput:(id<ECLCardReaderProtocol>)cardReader progress:(ECLTransactionProgress)progress
{
[self addStatusString:[NSString stringWithFormat:@"%@\n",[ECLDebugDescriptions descriptionOfTransactionProgress:progress]]];
}
// ECLCardReaderUserInput has the following properties
typedef enum {
ECLCardReaderUserInputType_PhoneNumber,
} ECLCardReaderUserInputType;
@interface ECLCardReaderUserInput : NSObject
@property (readonly)ECLCardReaderUserInputType inputType;
@property (readonly)NSString *input;
C#
/* Asynchronous */
m_CWS.StartPhoneEntry(MyNotifyCWSEvent, MyPhoneEntryComplete);
/* Synchronous */
PhoneEntryResults results = m_CWS.PhoneEntry(MyNotifyCWSEvent);
MyPhoneEntryComplete(results);
/* Do something with the pin data */
public void MyPhoneEntryComplete(PhoneEntryResults results)
{
Log($"Phone # Entered: {results?.PhoneData?.number}");
//...