Delegate
The transactionRequiresSignature
delegate is called when a signature must be confirmed as part of processing a transaction. Handle the transactionRequiresSignature
delegate by writing the POS app to call either [ADYSignatureRequest submitConfirmedSignature:]
or [ADYSignatureRequest submitUnconfirmedSignature:]
.
After this method has been called, the transaction will be paused until either submitConfirmedSignature:
or submitUnconfirmedSignature:
has been called on the given signatureRequest
.
This method must be implemented in two different ways, depending on the presence of a printer on the payment-device (as determined by the paymentDeviceHasPrinter
method on the Adyen class).
If the device has a printer:
- The device prints a receipt, which must be signed by the customer.
- The attendant compares this signature to the signature on the card, and either confirm that they are identical, or not.
- Implement the method to show a user-interface where the attendant can choose between Confirmed or Not confirmed, for example by pressing a button.
- The method must call either
submitConfirmedSignature:
orsubmitUnconfirmedSignature:
on thesignatureRequest
, both withnil
as thesignatureImage
parameter, to continue transaction processing.
If the device does not have a printer:
- Implement the method to display a user-interface on which the customer can draw a signature.
- Implement the method to allow the attendant to confirm or deny the drawn signature after comparing it to the signature on the card - for example, by pressing a button.
- The method must call either
submitConfirmedSignature:
orsubmitUnconfirmedSignature:
on the givensignatureRequest
, both with the drawn image assignatureImage
parameter.
Instead of calling submitConfirmedSignature:
or submitUnconfirmedSignature:
, it is also possible to cancel the transaction at this point as usual, by calling [ADYTransactionRequest requestCancel]
. After a transaction has been cancelled, subsequent calls to submitConfirmedSignature:
or submitUnconfirmedSignature:
will have no effect.
Parameters
Name | Type | Required | Description |
---|---|---|---|
signatureRequest |
ADYSignatureRequest | Request-object used to continue transaction processing. |
Declaration code example
Objective-C
- (void)transactionRequiresSignature:(ADYSignatureRequest *)signatureRequest;
Swift
func transactionRequiresSignature(_ signatureRequest: ADYSignatureRequest!)