How to Customize the POS Graphical User Interface for PINPAD Input: Difference between revisions

From wizarPOS
(Replaced content with "{{Migrating|https://smartpossdk.gitbook.io/cloudpossdk/faq/other-development/customize-pinpad-gui}}")
Tag: Replaced
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
== API ==
{{Migrating|https://smartpossdk.gitbook.io/cloudpossdk/faq/other-development/customize-pinpad-gui}}
=== <big>setupCallbackHandler</big>===
  <syntaxhighlight lang="java">boolean setupCallbackHandler(PinPadCallbackHandler handler)</syntaxhighlight>
Set a callback handler. When an input occurs to PINPAD, the callback handler is called.
 
{|class="wizarpostable"
|-
! scope="row" colspan="2" | Parameters
|-
| handler||  '''PinPadCallbackHandler :''' Not null.
|}
{|
|-
|}
{|class="wizarpostable"
|-
!  scope="row" colspan="2" | Returns
|-
|  boolean|| true: success.
|}
 
=== <big>processCallback of PinPadCallbackHandler </big>===
  <syntaxhighlight lang="java">void processCallback(byte[] data);</syntaxhighlight>
The callback method.
 
{|class="wizarpostable"
|-
! scope="row" colspan="2" | Parameters
|-
| data||  '''byte[] :''' date[0] is the count of input pin.
|}
{|
|-
|}
 
== Usage ==
The setupcallbackhandler method will set a callback handler. Before calling this method, you should call the open method. After setting the callback handler, the default PINPAD UI will not pop up, the driver will send the inputing PIN count to the callback handler, then the third-app can process the inputing PIN count.
 
'''Snippet code:'''
<syntaxhighlight lang="java">
 
    PINPadDevice device = (PINPadDevice) POSTerminal.getInstance(mContext)
                    .getDevice("cloudpos.device.pinpad");
 
    device.open();
 
    device.setupCallbackHandler(new PinPadCallbackHandler() {
          @Override
          public void processCallback(byte[] data) {
              Log.e(TAG, "processCallback  ");
 
              mHandler.obtainMessage(PIN_KEY_CALLBACK, data[0]).sendToTarget();
          }
          @Override
          public void processCallback(int nCount, int nExtra){
              // don't need implement.
          }
    });
 
    KeyInfo keyInfo = new KeyInfo(PINPadDevice.KEY_TYPE_MK_SK, 0, 0, 4);
    String pan = "0123456789012345678";
    OperationResult operationResult = device.waitForPinBlock(keyInfo, pan, false,
                    TimeConstants.FOREVER);
    if (operationResult.getResultCode() == OperationResult.SUCCESS) {
        byte[] pinBlock = ((PINPadOperationResult) operationResult).getEncryptedPINBlock();
        sendSuccessLog2("PINBlock = " + StringUtility.byteArray2String(pinBlock));
    } else {
        sendFailedLog2(mContext.getString(R.string.operation_failed));
    }
 
 
    device.close();
</syntaxhighlight>

Latest revision as of 03:22, 8 April 2024

Please visit new link of same subject:

https://smartpossdk.gitbook.io/cloudpossdk/faq/other-development/customize-pinpad-gui

We're making a move! Our site's content is migrating to a new URL, to provide you with an enhanced browsing experience. Please update your bookmarks accordingly. Thank you for your continuous support!