Originally Posted by
motocrossmann
MROTHLY, did you make any progress here? Sadly, I'm a Chase PP member, so no QR code for me. I like your angle though. There is nothing special about a QR code, it is just a series of letters/numbers.
I made a decent amount of progress, but only one person was able to send me a working QR to look at, so I don't have enough data to fully figure it out yet.
For the most part the QR code is really simple -- just encodes some text roughly like this format:
PP/[$issue-date]/[$cardholder-name]/[$expiration-date]/[$account-number]//[$checksum]
All of those are things that are normally visible on your card except for the checksum (which is a calculated hash designed to make sure the other fields are read correctly). Without more examples though, I can't reverse engineer how the checksum is calculated.
As a test, I made myself a QR code with my actual account details and just put junk data in the checksum field. This actually still worked in about 50% of the lounges I tried it in (the other half got a scan error, and ended up just manually typing in the details).
Since I was curious I also bought a cheap mag stripe card reader and looked at what is on the physical PP card. It's very similar, but doesn't have a checksum field at all (which is ironic since QR codes have built in data redundancy making the checksum largely irrelevant, whereas magstripes get misreads all the time and a checksum would actually be useful in the field).