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

Posts under Wallet tag

126 Posts
Sort by:

Post

Replies

Boosts

Views

Activity

PKPass bundle (.pkpasses) not recognized
Hi, I created a bundle of passes using this doc: https://developer.apple.com/documentation/walletpasses/distributing_and_updating_a_pass and sent it as an attachment to an email. But when I try to open it with my iPhone (iOS 16), it doesn't suggest the add to wallet. When I send each pass individually, there is no problem, they are added to my wallet. Does anyone have any suggestions?
1
0
353
Oct ’23
PassKit Presentation Suppression on Apple Watch
Automatically presenting PassKit when approaching an NFC reader has been around for a while on iOS. Apple is already providing support to inhibit this behavior when using an app that has an approval-gated capability with the identifier com.apple.developer.passkit.pass-presentation-suppression. The automatic presentation feature has been added in watchOS 10 without the offering of a similar inhibiting method. This is degrading the experience for watchOS 10 users in use cases where the Apple Watch is expected to be close to an NFC-enabled device. I've noticed that the API is present in watchOS as well, although it's marked as unavailable. Calling requestAutomaticPassPresentationSuppressionWithResponseHandler: is always returning 0 (notSupported), and that might be due to the fact that including the capability breaks code signing. I've opened a FB, was wondering what is the best way to better communicate this need to Apple engineering and product teams. (FB13234179)
0
0
367
Oct ’23
Empty Curl Response
I am trying to send a POST to apns to update a wallet ID card. I am getting "empty response" from the server and not sure why. Any help appreciated. I am not sure if the device ID or pushToken are expected in the POST URL, but I tried both. :) starting curl Trying 17.188.143.66:443... Connected to api.development.push.apple.com (17.188.143.66) port 443 (#0) ALPN, offering h2 ALPN, offering http/1.1 successfully set certificate verify locations: TLSv1.3 (OUT), TLS handshake, Client hello (1): TLSv1.3 (IN), TLS handshake, Server hello (2): TLSv1.3 (IN), TLS handshake, Encrypted Extensions (8): TLSv1.3 (IN), TLS handshake, Request CERT (13): TLSv1.3 (IN), TLS handshake, Certificate (11): TLSv1.3 (IN), TLS handshake, CERT verify (15): TLSv1.3 (IN), TLS handshake, Finished (20): TLSv1.3 (OUT), TLS change cipher, Change cipher spec (1): TLSv1.3 (OUT), TLS handshake, Certificate (11): TLSv1.3 (OUT), TLS handshake, CERT verify (15): TLSv1.3 (OUT), TLS handshake, Finished (20): SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 ALPN, server accepted to use h2 Server certificate: subject: CN=api.development.push.apple.com; O=Apple Inc.; ST=California; C=US start date: Dec 21 21:07:45 2022 GMT expire date: Jan 20 21:07:44 2024 GMT subjectAltName: host "api.development.push.apple.com" matched cert's "api.development.push.apple.com" issuer: CN=Apple Public Server RSA CA 12 - G1; O=Apple Inc.; ST=California; C=US SSL certificate verify ok. Using HTTP2, server supports multi-use Connection state changed (HTTP/2 confirmed) Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 Using Stream ID: 1 (easy handle 0x1f10c75e320) POST /3/device/<<device token>> HTTP/2 Host: api.development.push.apple.com user-agent: curl/7.73.0 accept: */* apns-topic: <<pass topic here>> content-length: 39 content-type: application/x-www-form-urlencoded We are completely uploaded and fine TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): TLSv1.3 (IN), TLS handshake, Newsession Ticket (4): old SSL session ID is stale, removing Connection state changed (MAX_CONCURRENT_STREAMS == 1000)! TLSv1.3 (IN), TLS alert, close notify (256): Empty reply from server Closing connection 0 TLSv1.3 (OUT), TLS alert, close notify (256): curl: (52) Empty reply from server ending curl
0
0
512
Oct ’23
PKPass bundle (.pkpasses) not working in IOS17
I am facing issues with .pkpasses bundle. Currently, I generate multiple .pkpass files, and store them in a zip as .pkpasses. Once I drag this ZIP into my IOS simulator or mail it to my iPhone, nothing happens. These are the steps I followed (https://developer.apple.com/documentation/walletpasses/distributing_and_updating_a_pass) Create a .zip file containing the .pkpass files for the passes that are part of the bundle. Change the extension of the .zip file to .pkpasses. I have uploaded my bundle.pkpass to Google Drive: https://drive.google.com/file/d/1UIjRpiwWtYGnPILDQV3aAfmu1D7MGE_L/view?usp=sharing Is anybody facing similar problems? I am not sure if this is an IOS17 issue, because I haven't worked with .pkpasses files before.
2
0
1.5k
Nov ’23
Not able to add credit card to Apple Wallet through In-App Provisioning in banking app
Hi, I'm working in-app provisioning of card from inside a banking app. But fails to add card to wallet with generic error "Could Not Add Card - Try again later or contact your issuer for more information" when clicking on Next from screen where card holder name & card number screen with title "Add Card to Apple Pay". I see from Console app below messages End remote event deferring requested for token: 0x280649e50; environments: 1; reason: PKRemoteAddPaymentPassViewController: 0x144124600: end deferring Disconnecting: identifier: com.apple.PassbookUIService; assertion: 0x280630140 Terminating interface and invalidating assertion: identifier: com.apple.PassbookUIService; assertion: 0x280630140 Terminating interface and invalidating connection: identifier: com.apple.PassbookUIService; assertion: 0x0 Disconnecting: identifier: com.apple.PassbookUIService; assertion: 0x0 Acquiring assertion: <RBSAssertionDescriptor| "NetworkProcess Background Assertion" ID:(null) target:2696> Terminating interface and invalidating assertion: identifier: com.apple.PassbookUIService; assertion: 0xXXXXXXXXX Terminating interface and invalidating connection: identifier: com.apple.PassbookUIService; assertion: 0x0 Kindly help me to resolve this problem. Regards
0
0
435
Sep ’23
Passkey for wallet creation problem
Hey there I'm facing problem with create passkey .pkpass, the problem is I've to create a passkey using certificate created by macOS then upload on the appstore then import to the key chain then I can create a .pkpass but I wanna create it in my Django server for my customers when ever customer create their digital business card. when I created in my another MacBook where that certificate not imported the .pkpass is not going to create, and if I create it on any way it is not going to open. please help me how I can create it for my each customer on server dynamically.
1
1
464
Sep ’23
Wallet Extension - "From apps on your iPhone" option not showing
I'm implementing Wallet Extension for adding credit card on wallet, I created both extension, UI and NonUI, but the "From apps on your iPhone" option never shows to me. My extensions have the same entitlements of main app, with the com.apple.developer.payment-pass-provisioning. My NonUI status function implementation: final class MBFApplePayNonUIExtensionHandler: PKIssuerProvisioningExtensionHandler { override func status(completion: @escaping (PKIssuerProvisioningExtensionStatus) -> Void) { let status = PKIssuerProvisioningExtensionStatus() status.requiresAuthentication = true status.passEntriesAvailable = true status.remotePassEntriesAvailable = true completion(status) } .... I tried this to: final class MBFApplePayNonUIExtensionHandler: PKIssuerProvisioningExtensionHandler { override func status(completion: @escaping (PKIssuerProvisioningExtensionStatus) -> Void) { let status = PKIssuerProvisioningExtensionStatus() status.requiresAuthentication = true completion(status) } .... Extensions .plists: NonUI: NSExtension NSExtensionPointIdentifier com.apple.PassKit.issuer-provisioning NSExtensionPrincipalClass MBFApplePayNonUIExtensionHandler UI: NSExtension NSExtensionMainStoryboard MBFApplePayUIExtension NSExtensionPointIdentifier com.apple.PassKit.issuer-provisioning.authorization What am I missing?
4
0
2.2k
Jun ’24
Card provisioning issue on Apple wallet extension App
Hi Team, I am facing issue in Card provisioning on Apple wallet extension App on last step while attempts to provision the card using the provided PKAddPaymentPassRequest. Please help on this. Failed to get LSApplicationRecord for <RBSLaunchRequest| xpcservice<————([application<com.apple.Passbook>:**])>; "Launching extension ———————————————— for host **> with error Error Domain=NSOSStatusErrorDomain Code=-10814 "(null)" UserInfo={_LSLine=1569, _LSFunction=runEvaluator}
2
0
703
Oct ’23
Pass a custom QR code to a Wallet Generic Card
Hi all, I have a very fundamental (and probably easy) question: is it possible to pass a custom QR code that has been generated outside of the system as barcode of a wallet generic card? It looks to me like the only way is to pass a link to a website and let the system generate the barcode with the link as message, but this is not feasible from a data protection perspective in my case as I want to connect to a vcf file where personal data is stored. Am I correct? Cheers, Davide
0
0
319
Sep ’23
getting TooManyProviderTokenUpdates error in production for applet wallet notifications
Hi All, Product information Our product create and update apple wallet passes per client. For example, client A will have a passtypeidentifier and devices which download the same will have its devicetoken[pushtoken] registered to our database. Same for other clients as well. We had been using legacy binary protocol-based approach till 2021, and we migrated http2 based APNS API implementation in the same year. But past few months, we are getting TooManyProviderTokenUpdates 429 in the production environment. No such error occurring in our lower environment with the same build. We use separate p8 cert,key and teamId per environment. *Implementation we have total of 5 clients, i.e: 5 pass type identifiers. In our current implementation , we create 5 connections per client. hence 5 oauth token[which refreshes only after 20 mins] are created. As we are sending push notifications to Apple wallet passes, we send apns-id as passtypeidentifier , no payload in the body and uses https://api.push.apple.com/3/devies/[pushtoken] endpoint for sending push notifications. So, each connection will have passtypeidentifier defined in the aps-id and device token sent in the URL. We initially suspected, multiple connection for a team identifier would be an issue. So, in our lower region[never reported this error], we tested a new build which implements 1 single connection for all the clients and one Oauth token is being used. In this approach , pass gets updated on the devices, but no notification banner displayed on the devices. So,we reverted to production build and sent notification to those same devices, we found passes updated and notification banner appeared. We are totally confused with the error message and behavior of APNS. Any suggestions or solution would be appreciated.
1
0
544
Sep ’23
Issue with Apple Pay
I have purchased IPhone 14 Pro Max in USA and using in India. So, I have selected my region as "India". Having India as region: It says "To add cards, keys, tickets and passes to wallet, look for the Add to wallet button in apps, emails and websites." I am not able to proceed further. Having USA as region: Now, I am not able to add any Indian Credit Cards in Apple Pay. I red through the Article from apple forums and found that I have to change the Region. I want to keep India as my region and should be able to use my indian credit cards.
1
0
330
Sep ’23
Sign A PKCS #7 Detached Signature Within iOS App
The Wallet Passes is a bundle of files with a signature, in the last step of generate a pass bundle: Sign the Pass and Create the Bundle, I do struggle from trying use Security, CryptoKit and Compression to complete it. Does Security have I method to sign data for PKCS #7 signature? And, must I use zip for a bundle, Compression does not provide a way to generate a zip. Is there a native way to use Apple Framework and Swift to complete it?
1
0
595
Sep ’23
Does the PKPassLibraryRemotePaymentPassesDidChange notification inform my application when an NFC tag is read by a reader?
Greetings, Question 1: I'm currently working on implementing a feature that involves tracking NFC tag reading events. Specifically, I aim to monitor these events for passes that have been added to the wallet using my application. This way, I can gain insights into the interactions users have with these passes and provide enhanced functionality based on their usage patterns. Question 2: Is there a way to implement a restriction on NFC-based passes, allowing them to be used only once for a specific action or purpose? I'm looking to ensure that once a user utilizes the NFC feature associated with a pass, the pass becomes inactive for any future interactions, thereby enforcing a one-time use scenario.
0
0
263
Aug ’23
Apple Wallet Pass Autoupdate
Hi All I have successfully created an Apple pass using PHP. The pass is added to the Apple wallet successfully. Now, I have to update the pass with a new value for one of the parameters in the pass. How do we update the value? Please refer to a sample PHP script for the same. I have checked the below sites, Here, they Mentioned only the input and output, as per the document I received the push token, What should I do after getting the push token? https://developer.apple.com/library/archive/documentation/PassKit/Reference/PassKit_WebService/WebService.html
1
0
670
Aug ’23
How generate activationData for In-App Verification?
The Getting Started with Apple Pay documentation states that we should use this method to activate passes with In-App Verification. The main param is the activationData, which is generated by PNOs. The issue is that to generate the activationData, a nonce is required. How can we get the nonce on the In-App Verification context? The only way mentioned in the documentation to get the nonce is through PKAddPaymentPassViewControllerDelegate. But the PKAddPaymentPassViewController should be use only to In-App Provisioning, should not?
1
0
915
Oct ’23
Push Notification to Apple Wallet Passes failing with WinHttpException exception
I am trying to write some code to send a push notification to a pass on an Apple device using C# .NET and HttpClient over HTTP2 with client certificate authentication. When I run the code, I am seeing the below exception: InnerException = {"Error 12152 calling WinHttpWriteData, 'The server returned an invalid or unrecognized response'."} I am trying to find out why this code is failing? Is it possible to debug/troubleshoot this in some way? Running this code on Windows 10 OS Build version: 21H2 (19044). The application is built on .Net Framework 4.8 and tried using WinHttpHanlder versions 6 and also 7. Also, tried using other third party open source libraries like PushSharp and DotApns. PushSharp does not seem to support Http/2 and dotApns does not support certificate authentication for .net framework. We have no plans to migrate to .net Core. Below is my code: private static string pushToken = "dbc56849<hidden>"; private static string AppleApnServer = "https://api.sandbox.push.apple.com"; public static async Task<PushResult> SendPushNotificationToWalletPass(string notificationContent) { byte[] certificateData = LoadCertificate(); X509Certificate2 certificate = new X509Certificate2(certificateData, String.Empty, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet | X509KeyStorageFlags.Exportable); string url = $"{AppleApnServer}:443/3/device/{pushToken}"; StringBuilder payload = new StringBuilder(); payload.Append("{ \"aps\" : "); if (string.IsNullOrWhiteSpace(notificationContent)) { payload.Append("\"\" }"); } else { payload.Append(notificationContent); payload.Append(" }"); // close aps dictionary } var handler = new Http2Handler(); handler.ClientCertificates.Add(certificate); using (var httpClient = new HttpClient(handler)) { using (var request = new HttpRequestMessage(HttpMethod.Post, url)) { var messageGuid = Guid.NewGuid().ToString(); request.Content = new StringContent(payload.ToString()); request.Headers.Add("apns-id", messageGuid); request.Headers.Add("apns-push-type", "alert"); using (var response = await httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead)) { HttpStatusCode statusCode = response.StatusCode; string reasonPhrase = response.ReasonPhrase; bool success = response.IsSuccessStatusCode; Console.WriteLine($"APN {(success ? "Delivered Successfully!" : $"Failed to Send! :: StatusCode [{statusCode}] Reason [{reasonPhrase}]")} :: PushToken [{pushToken}]"); if (!success) { switch (statusCode) { case HttpStatusCode.Gone: // The device token is no longer active for the topic. return PushResult.DeviceNotRegistered; default: return PushResult.Failure; } } return PushResult.Success; } } } } public enum PushResult { Success = 0, Failure = 100, DeviceNotRegistered = 200 } // Apple APNS requires http2 but .Net Framework does not support http2 (only built in support in .net core) // found this workaround https://stackoverflow.com/questions/32685151/how-to-make-the-net-httpclient-use-http-2-0/43101990#43101990 private class Http2Handler : WinHttpHandler { protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) { request.Version = new Version("2.0"); return base.SendAsync(request, cancellationToken); } }
1
0
1.2k
Jan ’24
Changes to Wallet behavior post ios 16.2 - Activating Pass Issues?
Does anybody know if there were changes in the behavior of Apple Wallet for event tickets somewhere between ios 16.2 and now which would cause a pkpass being added to a wallet to not activate if the pkpass is "registered" to another apple id? I don't mean the pkpass is already in another wallet, rather something about the way it is read in wallet which now would make it stuck in "Your pass is being activated...". (Same pass, different ios seems to have different behavior) Also, can somebody tell me what the "activating" state means in the wallet - does that mean one of these calls failed? Or is it another step? https://developer.apple.com/library/archive/documentation/PassKit/Reference/PassKit_WebService/WebService.html#//apple_ref/doc/uid/TP40011988 Thanks!
0
0
685
Aug ’23