PassKit loyalty cards

I'm trying to make a loyalty card where you get 10 punches and then $5 off your next order. I can get the card into Wallet without issues, and I have the push notifications working to send a new version of the pass to the device. What i'm not sure how to handle though is actually "punching" the card.


The only thing I can come up with is to have the pass contain a barcode that the vendor scans with their phone and that would take them to some type of webpage where the vendor types in their password and "punches" the card. That seems really cumbersome though to do. Is there a better way for the vendor to update the card without having to pull out an iOS device?


Same with the $5 off coupon. Do they scan a barcode on the wallet pass and then mark it as being used, and the server then pushes a $0 update for that card back?

Replies

You can have the vendor print out a barcode and have the user's device scan the printed barcode. Then when the user's device has ten scans it indicates $5 off. The vendor taps something on the device after granting the discount thereby cancelling the $5 off. That way the vendor doesn't need an iOS device. The vendor could access your website to get the barcode image on a daily basis.

If the user scans something then the vendor's database doesn't know who the user is.

>If the user scans something then the vendor's database doesn't know who the user is


The user's device is an iOS iPhone. After it scans, it can communicate with any database that is available through the internet. Were the user's device an iOS device, they could use CloudKit.


And... in a paper version of a punchcard, the vendor does not know who the user is.

> The user's device is an iOS iPhone


That's true, but that doesn't help. PassKit creates an identifier for the device and that's what is tracked. I wouldn't have a way to associate that device to the pass, as far as I can tell.

>have the user's device scan the printed barcode


This is done by an app on the user's device, not using PassKit. If you insist upon using PassKit on one device then the device doing the scanning of the PassKit will need to be an iOS device.