Offer rewards cards boarding passes tickets gift cards and more using Wallet.

Wallet Documentation

Posts under Wallet tag

128 Posts
Sort by:
Post not yet marked as solved
0 Replies
386 Views
Hello everyone, this is my first post. I have a question, I understand that it is possible to generate nfc passes and add them to the apple wallet after obtaining the Apple certificate. Apple asks which physical reader is compatible for reading the pass, but is it possible to use an Android or iOS mobile application to read the pass ? Have a nice day. Kind regards,
Posted
by
Post not yet marked as solved
5 Replies
1.8k Views
I am coding for Apple Pay in-App provisioning extension, but there was a problem when Apple Wallet load authorization UI extension: The source code: The principal class .h file #import <UIKit/UIKit.h> NS_ASSUME_NONNULL_BEGIN @interface IssuerProvisioningViewController : UIViewController @end NS_ASSUME_NONNULL_END The principal class .m file #import "IssuerProvisioningViewController.h" #import <PassKit/PassKit.h> @interface IssuerProvisioningViewController ()<PKIssuerProvisioningExtensionAuthorizationProviding> @end @implementation IssuerProvisioningViewController @synthesize completionHandler; - (instancetype)init { NSLog(@"--- init"); self = [super init]; return self; } - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { NSLog(@"--- initWithNibName nibNameOrNil"); self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; return self; } - (void)viewDidLoad { NSLog(@"viewDidLoad"); // Do any additional setup after loading the view from its nib. } @end The Info.plist: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>NSExtension</key> <dict> <key>NSExtensionPointIdentifier</key> <string>com.apple.PassKit.issuer-provisioning.authorization</string> <key>NSExtensionPrincipalClass</key> <string>IssuerProvisioningViewController</string> </dict> </dict> The entitlement file: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.developer.payment-pass-provisioning</key> <true/> </dict> </plist> Environment: iOS 16.4.1 I found the method viewDidLoad was not be called after invoking method init. Thanks for reading and any advice.
Posted
by
Post not yet marked as solved
1 Replies
371 Views
I work in a fintech company that offers support to Apple Pay in our cards, i.e. our users have the option add their cards to Apple Pay using our app (in-app provisioning). Our company already got the proper In-App provisioning entitlements from Apple and the entire in-app provisioning process is working as expected. When an user taps on the button "Add to Apple Wallet" in our app to provision his card, we call the following code below: let config = PKAddPaymentPassRequestConfiguration() config.cardholderName = "\(firstName) \(lastName)" config.localizedDescription = "MyApp Card" config.primaryAccountSuffix = String(cardSuffix) config.paymentNetwork = .visa // Present the Apple Pay ViewController let controller = PKAddPaymentPassViewController(requestConfiguration: config, delegate: self) UIApplication.shared.delegate?.window??.rootViewController?.present(controller!, animated: true) If the user has an Apple Watch paired, he is greeted with a screen asking him to select on which device he wants to add the card: on his iPhone or on the Apple Watch (please see the screenshot attached). After the user selects the device, the provisioning process continues successfully as expected. However, if the user taps on the "Add to Apple Wallet" button and he already has the card added to one of the devices (the Apple Watch, for example), then the code above is called again, but he is once again greeted with the same screen asking him to select on which devices he wants to add the card, on his iPhone or on his Apple Watch, even though the card is already added on the Apple Watch. The way I understand it, since the card is already added on the Apple Watch, only iPhone should appear as a valid option to have the card added. Is there anything else that I need to do in the code above to make sure only the available devices (I mean, only the devices that don't have the card added on Apple Pay yet) are listed in the device selection? I have tried following code.. but not worked.. let config = PKAddPaymentPassRequestConfiguration() config.cardholderName = "\(firstName) \(lastName)" config.localizedDescription = "MyApp Card" config.primaryAccountSuffix = String(cardSuffix) config.paymentNetwork = .visa config.primaryAccountIdentifier = "some unique identifier"
Posted
by
Post not yet marked as solved
1 Replies
507 Views
I'm trying to use Apple wallet to permit users for a coupon usage so I followed apple demo Here When it comes to this part To get the signpass tool, do the following: Download this book’s companion file (from The developer downloads area), and locate the signpass project. Open the project in Xcode, and build it. Right-click on the signpass executable (in the Products folder in Xcode) and select Show in Finder. Move the signpass executable to the Documents folder. When i try to run the demo project i got this error usage: signpass -p <rawpass> [-o <path>] [-c <certSuffix>] signpass -v <signedpass> -p Sign and zip a raw pass directory -v Unzip and verify a signed pass's signature and manifest. This DOES NOT validate pass content. Program ended with exit code: 0 Any help is extremely appreciated
Posted
by
Post not yet marked as solved
0 Replies
489 Views
How we create round thumbnail instead of square one?
Posted
by
Post not yet marked as solved
0 Replies
680 Views
Hi, I would like some information on how to implement a local payment method to the Wallet, when it is not a regular scheme (Visa, MC, Amex) ? For example in Brazil there is Pix, in Panama there is Yappy, in Colombia there is Davi Plata. How should this non credit/debit card methods should be handled? As a stored value card? Any guidance would be appreciated.
Posted
by
Post not yet marked as solved
1 Replies
890 Views
The talk tagged below mentions sending order packages by email. I just tried sending a signed package from the sample packages that were released last year - and viewing the email on my iPhone running iOS 17 beta 1. Here it does not open in Wallet, but I suspect this is just a beta issue. My actual question is: Will it be alright for any system to attach an order package to an email? I am working on a POS-system that is iOS-based, and I would like the end customers to be able to add their orders to Wallet. Can I add an order package - or a link to an order package to my receipt emails and have those be added to Wallet? Or does Apple Pay somehow have to be involved? Can I serve an order package from a webserver? Could it be added to wallet directly from a QR code while the customer is still in the store?
Posted
by
Post not yet marked as solved
1 Replies
966 Views
Hello. we are looking in adding an additional verification method as part of our in app provisioning to apple wallet. the method is called app to app verification method where basically when the customer adds their card (debit or credit) on apple wallet they can be verified through a third party app. does apple support this? where can i find any material related to this?
Posted
by
Post not yet marked as solved
3 Replies
994 Views
Hi, I'm currently developing Apple Pay In-App Provisioning and have encountered an issue with viewing logs necessary for debugging. I've followed the instructions listed in https://download.developer.apple.com/iOS/iOS_Logs/Wallet_Logging_Instructions.pdf and have installed the relevant wallet profile. After repeating the issue, and opening up the sysdiagnose file on my mac, the logs that i'm interested in is still hidden with private tags. The device I'm using to develop on is an iPhone 11, runnning on iOS 16.5. The version of Xcode is 14.3. I am also using a sandbox account on the device if that is relevant to the issue. Below are screenshots of the logs I'm interested in. Any help in solving this issue will be greatly appreciated.
Posted
by
Post not yet marked as solved
0 Replies
350 Views
I am currently working on the testing of in-app provisioning from the mobile app side. I followed the guide to pass the encryptedPassData, ephemeralPublicKey, and activationData to the Wallet through the PKAddPaymentPassRequest class, but the result was a failure. I also followed the guide to use the init(base64Encoded:options:) function to encode those objects before passing those to the class. However, when I attempted to extract the log as per the guide, I only received a response code of 500. Can anyone please advise on how I can obtain more information to troubleshoot the problem? Thank you!
Posted
by
Post not yet marked as solved
0 Replies
334 Views
Hi, I have an app where we are implementing in-app provisioning to Apple Wallet. I am trying to obtain the list of tests needing to be executed successfully for Apple approval. I've had no luck in trying to locate in the Apple developer pages. Any help is appreciated in pointing me the URL or list of test cases.
Posted
by
Post not yet marked as solved
1 Replies
766 Views
After issuing an apple pass I get a register call to my service endpoint that looks like /apple/service/v1/devices/:device_id/registrations/pass.com.perks.generic/:pass_serial with a pushToken in the body. I use that device library id and push token to try to send an push notification to kick off an update to endpoint ("https://api.sandbox.push.apple.com/3/device/%s", device_id) In the headers I'm sending: "authorization": *authorization, "Content-Type": "application/json", "apns-topic": os.Getenv("APPLE_PASS_TYPE_IDENTIFIER"), "apns-expiration": fmt.Sprintf("%d", expiration), } and I'm creating the auth using the same .p12 cert and key I used to sign the pass. Signing code: kid := os.Getenv("APPLE_PUSH_KEY") iss := os.Getenv("APPLE_TEAM_ID") // Create a new JWT token token := jwt.New(jwt.SigningMethodRS256) // Add claims claims := token.Claims.(jwt.MapClaims) claims["iss"] = iss claims["iat"] = time.Now().Unix() // Add kid to the header token.Header["kid"] = kid token.Header["alg"] = "ES256" // Load your ES256 key key, err := loadPrivateKey() if err != nil { fmt.Println("failure to load private key") return nil, err } rsaKey, ok := key.(*rsa.PrivateKey) if !ok { return nil, fmt.Errorf("private key is not of type *rsa.PrivateKey") } // Sign and get the complete encoded token as a string tokenString, err := token.SignedString(rsaKey) if err != nil { fmt.Println("Failure to sign key") return nil, err } // Add "Bearer " to the token string to make it a bearer token bearer := "Bearer " + tokenString return &bearer, nil But no matter how I do the auth or what headers I send I get a 403 response that looks like this: {403 Forbidden 403 HTTP/2.0 2 0 map[Apns-Id:[B9646536-1E28-4F26-DBE2-3ABB66513CE3]] {0xc0001f9200} -1 [] false false map[] 0xc000163400 0xc00027f550} I get the same result even when I take out the auth entirely. I don't know what it means or how I should proceed. I have a few more details in this stackoverflow: https://stackoverflow.com/questions/76527294/apns-push-for-wallet-update-403 but I feel like I must be missing something fundamental on how to send the APNs push for updating a wallet pass. Is there an example somewhere of this being done? I've been working off these docs: https://developer.apple.com/documentation/walletpasses/adding_a_web_service_to_update_passes https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/PassKit_PG/Updating.html#//apple_ref/doc/uid/TP40012195-CH5-SW1 https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns But have been unable to find an example.
Posted
by
Post not yet marked as solved
0 Replies
385 Views
We are distributing event ticket pass (pkpass file) through web link to our customers to add it in their Apple Wallet app. This works fine when we try to open the web link in iPhone (iOS) which will add pass into Apple Wallet app in iPhone. We are trying similar approach to add the event ticket pass directly into their Apple Watch (watchOS). Is there a way to add Apple Pass directly in their Apple Watch (without iPhone) through web link or email?
Posted
by
Post not yet marked as solved
2 Replies
786 Views
I have my apple savings account, i went to withdraw money the other day... i cant take anything out or put anything in. its like a typing bug. i go to type a number to withdraw or deposit and nothing happens. theres no way to access your savings account. im running ios 17 beta 2 on an iphone 13
Posted
by
Post not yet marked as solved
0 Replies
563 Views
I work on a banking app and we're trying to programmatically add cards to apple Wallet and we've generated certificates, nonce and nonceSignature, But our server developers are not clear on how to generate empherialKey, activationData, and encryptedPassData. How should the values for these three attributes be generated? What's the whole process like? . Can you help me
Posted
by
Post not yet marked as solved
0 Replies
488 Views
Good morning! I've done a lot of research on attempting to create a wallet card for our public library, but I still don't really understand how to do it. What I'm looking to do is, when a customer is logged into our website using their library card number, present the "Add to Wallet" button. I'm just confused on how to generate this code on the fly as it would need the unique card number of that customer to be grabbed as part of the call. If someone has done something similar and can point me in the right direction (I've been through all the Apple pages outlining how to do this, but I still don't quite understand). I'm happy to do the work, just am unclear where to start. Thank you for any help! Chris
Posted
by
Post not yet marked as solved
0 Replies
501 Views
Is there any length limit of primaryFields. I had successfully created an eventTicket whose primaryFields value contains hundred of characters, but issue occurs during display.
Posted
by
Post not yet marked as solved
3 Replies
992 Views
On simulator, everything works fine. But when I run on an iOS beta 3 device, the UI simply doesn't change. I just see the one button stay there. Logs show the below upon every click. I know there's the expected System UI with "Hold here to present" based on the simulator, but I can't see it on a real device. Is there some Terms & Conditions thing I should expect, maybe? Please advise. Thanks. . . . [for reference, the below are the error logs in Xcode] An error occurred while reading a mobile document: The operation couldn’t be completed. (ProximityReader.MobileDocumentReaderError error 6.) serviceUnavailable Could not create identity session due to: [ Error Domain=ProximityReader.IdentityReaderErrorInternal Code=15 UserInfo={NSDebugDescription=, code=} ]
Posted
by