Phone Number

You can retrieve a 10-digit phone number from the customer.

Code Samples

CWS

Request

PropertyDescription
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

PropertyDescription
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}");
            //...