Skip to content
Wim Vandenhaute edited this page Mar 17, 2016 · 7 revisions

Info

linkID provides the ability for you to push a configuration of a linkID authentication/payment. We call this a long term QR code (LTQR). Such a code will once scanned be converted to a linkID authentication/payment session. This way you can use the LTQR code to send a payment to customers via alternative channels like e-mails, a post, ... .

This payment context is optional so you could also use the long term QR codes for cases like printing out a static code to have users sign up to e.g. a newsletter, ...

Locking

Locking a LTQR code will prevent new users from continuing. You can unlock the LTQR code with a change request

You have 3 lock type options

  • NEVER: LTQR code will never get locked
  • ON_SCAN: LTQR code is locked after the first user scans it.
  • ON_FINISH: LTQR code is locked after first user finishes ( authenticates or if applicable the payment is authorized )

Blocking

Blocking a LTQR code will put all users that scan the code on hold until you unblock it with a change request. This can come in handy in a point of sale situation where you want to reduce time by letting the user already scan the LTQR code whilst the cashier is changing the LTQR code with the correct payment context.

The time you want to keep a user waiting when blocked ( and when waiting for a payment update) can be specified with the polling configuration parameters.

Notifications

LTQR codes send out 2 notification topics:

  • urn:net:lin-k:linkid:topic:ltqr:session:new : a user has scanned the LTQR code
  • urn:net:lin-k:linkid:topic:ltqr:session:cancel : a user has canceled his LTQR code session
  • urn:net:lin-k:linkid:topic:ltqr:session:update : a user has finished the LTQR code session

The notification will contain the LTQR reference, the LTQR client session ID and if applicable the payment order reference.

Contact a linkID person to setup a subscription to these topics for your application.

Configuration

Messages

You can customize the authentication and finished message that will be displayed in the mobile app. If the LTQR is a payment, the authentication message will not be used as linkID does not allow overriding the main message in the pin view. This is to prevent accidental wrong display of the amount to pay. The message below that payment message can be configured in the LinkIDPaymentContext.description field.

Payment context

The payment context you push to linkID has the same options as mentioned in the Payments section. Off course do not all options apply here such as the show add payment method link, validation time.

Expiry

You can also set an expiry date or and expiry duration. Specifying both makes no sense but if you do so the expiry date will be used. The expiry duration is expressed in seconds.

What is returned is a Long term QR session containing the

  • ltqr reference, this is a reference generated by linkID for that specific long term QR code
  • payment order reference, as you specified in the payment context ( or one linkID generates if you do not as explained in the Payments section)
  • the QR code in PNG format
  • the contents of the QR code if that suits you better and you want to create the QR code image yourself.
  • the QR code URL according to the user agent you specified ( the URL will differ for different devices )

Web service

The long term QR web service has 5 operations

  1. push: create a long term QR code
  2. change: change an existing long term QR code
  3. pull: fetch payment details for a specified long term QR code. You can filter the LTQR sessions you want by ltqrReference, payment order reference, client session IDs.
  4. remove: remove a long term QR code and all possible made client sessions attached to it
  5. info: get info about a LTQR code

The pull operation will return you a list of LTQRClientSessions. They will contain:

  • The long term QR reference
  • The client session ID
  • The linkID user ID
  • The date the session was created
  • The payment state
  • The payment order reference ( if applicable )

As linkID needs to know who is trying to push, pull or remove, this web service needs to be authenticated. This can be done using WS-Security with a X509Token or WS-Security with a username token. You'll need to inform a member of the linkID team which one so we can setup everything. Our SDKs support both off course.

Java SDK

The source code of the web service client can be found here

You notice 2 constructors, one for the username token, one for the x509 token. The rest should be self explanatory.

.NET SDK

The source code of the web service client can be found here

You notice 2 constructors, one for the username token, one for the x509 token. The rest should be self explanatory.

You can create a long term session for 20EUR in linkID as follows

LTQRClient client = new LTQRClientImpl(wsLocation, wsUsername, wsPassword);

PaymentContext paymentContext = new PaymentContext(20000, Currency.EUR, "Custom payment context", orderReference, null);
DateTime expiryDate = DateTime.Now.AddMonths(3);

LTQRSession session = client.push(paymentContext, false, expiryDate, null);

You can find an example on its usage in a simple unit test

An example on how to deal with notifications from linkID can be found here

PHP SDK

The source code of the web service client can be found here

Check out this example on how to use it.

An example on how to deal with notifications from linkID can be found here

Clone this wiki locally