Hi. I'm planning of creating a system for in-office access control that allows putting employee ID card in Apple Wallet to unlock the door without unlocking iPhone, something like HID Global's Employee Badge in Apple Wallet.
I searched and it seems that Apple Access is suitable for unlocking the office door, but I couldn't find any relevant development documentation.
What kind of enrollment or application is required to put my employee ID card in Apple Wallet with Apple Access and use Express mode?
Also, could one share any related development documents please?
Thank you in advance.
Wallet
RSS for tagOffer rewards cards boarding passes tickets gift cards and more using Wallet.
Posts under Wallet tag
126 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Is there a way to query the available credit/debit cards in the users Apple Wallet? I want to be able to load a specific card when the user is about to pay with Apple Pay.
I don't need the card numbers or anything, just the card brand (like "Wells Fargo Active Cash"). I'm not a card issuer.
Hey there, I have a question about the Payment Processing Certificate.
Does this certificate need to be in an account that is only using Push Provisioning in the apps? We don't have any payments being made in app.
Do the Wallet app use this certificate to make the payments? Or only stores uses it to make in-app payments?
The final question is: can we remove this certificate?
I've implemented pass generation successfully and it's updated through Apple's silent notification, which updates the passes to their latest versions.
I want to send some marketing push notifications to the Apple Wallet App as shown in my post at stackoverflow.
Here is the Silent notification implementation, which is working perfectly fine.
const options: apn.ProviderOptions = {
token: {
key: fs.readFileSync("./certs/APNs_AuthKey_7YYF346FU5.p8"),
keyId: "******",
teamId: "******",
},
pfx: fs.readFileSync("./certs/private_key.pem"),
cert: fs.readFileSync("./certs/certificate.pem"),
production: true,
rejectUnauthorized: true,
};
const apnProvider = new apn.Provider(options);
async function sendSilentPushNotification(
deviceTokens: string[],
serialNumber: string
) {
try {
const notification = new apn.Notification();
notification.topic = "pass.com.digital.passmaker";
notification.payload = {
aps: {
"content-available": 1,
},
serialNumber,
};
notification.priority = 5;
return await apnProvider.send(notification, deviceTokens);
} catch (error) {
logger.error("Apple Notification error: " + error);
return error;
}
}
Here is the marketing notification I am trying to send, it is working with success, but I don't see any notification on mobile phone.
please help me to fix it.
async function sendCustomPushNotification(
deviceTokens: string[],
serialNumber: string,
title: string,
body: string,
category?: string,
badge?: number
) {
try {
const notification = new apn.Notification();
notification.topic = "pass.com.digital.passmaker";
// Set the title and body of the notification
notification.alert = {
title: title,
subtitle: "Pass Update",
body: body,
};
// Set the sound to play when the notification is received
notification.sound = "default";
// Set the badge number on the app icon (optional)
if (badge !== undefined) {
notification.badge = badge;
}
notification.contentAvailable = true;
notification.mutableContent = true;
notification.aps.category = category;
notification.aps.alert = {
title: title,
body: body,
};
notification.aps.badge = badge;
notification.aps["content-available"] = 1;
notification.aps["launch-image"] =
"https://banner2.cleanpng.com/20180423/gkw/.......jpg";
// You can still include the serialNumber in the custom payload
notification.payload = {
serialNumber: serialNumber,
aps: {
"content-available": 1,
"mutable-content": 1,
"interruption-level": "time-sensitive",
},
};
// Set to high priority
notification.priority = 10;
return await apnProvider.send(notification, deviceTokens);
} catch (error) {
logger.error("Apple Notification error: " + error);
return error;
}
}
I literally receive a success response from api returning the device pushToken with no errors. However, no notification show on my iPhone
Hi,
I'm inquiring in regards to the feasibility or possibility of making a connection from iPhone to another, such that one iPhone uses Apple wallet, and another iPhone would detect for the signal within the app. Please let me know if this is feasible or if any more information would be necessary to assist. If this is possible, what documentation would be relevant?
Thank you.
I'm looking into developing a Pass that drills down into other screens and would add buttons below a pass.
I'm finding it hard to get any information on these capabilities. Does anyone have any resources that might help.
Essentially, mixing features between different pass types (payment cards, generic passes, etc).
I am unable to receive push notifications through my Apple Wallet pass. Based on the documents I have read, I have set up my APN provider and should be sending all the necessary information. Furthermore, my logs show that I am successfully sending my notification to APN, so it is confusing that no notification appears on my phone. Below are my code snippets:
apnProvider.js:
const path = require('path');
const options = {
cert: path.resolve(__dirname, '../certificates/signerCert.pem'),
key: path.resolve(__dirname, '../certificates/signerKey.pem'),
passphrase: 'test',
production: true
};
const apnProvider = new apn.Provider(options);
module.exports = apnProvider;
APN provider using an auth key (currently not being used but was previously and provided the same success message):
token: {
key: path.resolve(__dirname, '../certificates/AuthKey_627HR2YX2S.p8'),
keyId: "627HR2YX2S",
teamId: "72J45J9PH3"
},
production: true
});
API Rout:
const { userId } = req.body;
console.log(`Received POST request on /api/send-notification for user`);
try {
console.log(`Sending notification to user: ${userId}`);
const user = await User.findById(userId);
if (user && user.deviceToken) {
console.log('User Name:', user.firstName, user.lastName);
console.log('Device Token:', user.deviceToken);
let notification = new apn.Notification();
notification.expiry = Math.floor(Date.now() / 1000) + 3600;
notification.badge = 1;
notification.sound = 'default';
notification.alert = 'Hello World';
notification.payload = { messageFrom: 'Kudjo' };
notification.topic = 'pass.com.kudjo';
console.log(`Sending notification to device token: ${user.deviceToken}`);
console.log(`Notification payload:`, notification.payload);
apnProvider.send(notification, user.deviceToken).then(response => {
console.log('Push notification sent:', response);
res.status(200).json({ message: 'Notification sent' });
}).catch(error => {
console.error('Error sending push notification:', error);
res.status(500).json({ message: 'Error sending notification One' });
});
} else {
console.log('User or device token not found');
res.status(404).json({ message: 'User or device token not found' });
}
} catch (error) {
console.log('Error sending notification:', error);
res.status(500).json({ message: 'Error sending notification Two' });
}
});
Thank you for your help!
Hello everyone,
I'm having trouble with sending custom push notifications for Apple Wallet passes. Here's what I've done so far:
Registered a new pass: I receive a deviceToken for the pass.
Enabled Push Notifications: Push notifications for the Apple Wallet app and the specific pass are enabled on my phone.
Added the Key for Push Notifications: I've added the necessary key for push notifications.
I use following code to send the message via APNS:
const tokenKey = fs.readFileSync(options.tokenPath).toString();
jwtToken = sign({}, tokenKey, {
algorithm: 'ES256',
expiresIn: '1h',
issuer: options.teamId,
header: {
alg: 'ES256',
kid: options.keyId
}
});
const client = http2.connect('https://api.push.apple.com:443');
const notificationPayload = JSON.stringify({ aps: { "alert" : "Hello" } });
// and try
//{
// "aps": {
// "alert": "Your pass has been updated!",
// "sound": "default"
// },
// "pass-type-identifier": "pass.com.example.myPass",
// "serial-number": "123456789",
// "device-token": "<deviceToken>"
//}
const request = client.request({
':method': 'POST',
':path': `/3/device/${deviceToken}`,
'apns-topic': topicId,
'apns-push-type': 'alert',
'authorization': `bearer ${jwtToken}`,
'apns-priority': 10,
'content-type': 'application/json',
'content-length': Buffer.byteLength(notificationPayload)
});
return new Promise((resolve, reject) => {
request.on('response', (headers, flags) => {
for (const name in headers) {
console.log(`${name}: ${headers[name]}`);
}
});
request.on('data', (chunk: string) => console.log(chunk));
request.on('end', () => {
client.close();
resolve();
});
request.on('error', (err) => {
console.error('Error sending push notification:', err);
reject(err);
});
request.write(notificationPayload);
request.end();
});
When I send the message, I receive a :status:200 and a apns-ID, indicating that the message has been sent. However, I do not receive the custom push notifications on my phone. The pass updates are received without any issues, but the notifications are not.
Has anyone encountered this issue or know if it's possible to send custom push notifications for Apple Wallet passes in this manner? Any guidance on how to resolve this issue would be greatly appreciated.
I just want my own wallet pass, do I have to pay 99$ a year? Or is there another methods to do that?
I have an online booking website that have a button to Add the Passes to the wallet, my problem is sometimes the bundle can have more than 10 passes,
which is a limitation as shown in: https://developer.apple.com/documentation/walletpasses/distributing_and_updating_a_pass
what is the best practice to handle multiple bundles on web or more than 10 passes
and is there websites that provide pass bundles, that i can check ?
The wallet App on a managed business ID is currently not able to store credit cards or flight tickets.
When can we expect to have this functionality? Is there a reason why it's not possible to store the cards at the moment?
I hope this message finds you well. I am currently utilizing dotnet-passbook within .NET for a project and have several inquiries regarding its capabilities.
Firstly, I am interested in creating custom passes that do not adhere strictly to Apple's predefined styles. Could you please confirm if dotnet-passbook supports the creation of custom passes with unique styles?
Secondly, I would like to inquire about the possibility of modifying text sizes and styles within passes generated using dotnet-passbook. Does the library provide functionality for such customization?
Your insights into these questions would be greatly appreciated, as they are crucial for the ongoing development of my project. Thank you in advance for your time and assistance.
Best regards,
While Implementing Wallet Intent Extension, and after verification
The only message i get is
Cannot Add Card
There are no available cards to add.
Any help here is appreciated.
While Implementing Wallet Intent Extension, and after verification
The only message i get is
Cannot Add Card
There are no available cards to add.
Any help here is appreciated.
Hi,
I work in a ticketing company and we used Wallet passes.
Everything works great but some venues report that some qrcodes are unreadable.
I have one example. All information is present but the qrcode could not be read. We tested multiple readers.
The information in the qrcode is only numeric, so ti is not an encoding issue.
What can cause this issue ?
iOS 18 announced improvements to the Wallet Passes. Does anyone have a link to the updated documentation? The old documentation does not have the changes as of the time of this post. There is a video, however, there are no specifications for the the new image formats (e.g., artwork.png).
Hi,
I know it's currently possible to import a virtual debit/credit card from a mobile app into the IOS Wallet using PassKit from the Apple SDK, but I haven't seen any documentation to do it directly from a web app, could you please tell me if it is possible to do it directly from a web app without using a mobile app?
And if so, point me to some documentation?
Thanks in advance
There must be some rules that determine which set of localized strings of an Apple Wallet pass (.pkpass) is used when the choice is not obvious.
For instance, I made a pass with localization folders
ko.lproj (Korean)
pl.lproj (Polish)
zh-Hans.lproj (Chinese).
If any of these languages is in my iPhone's preferred languages (Settings... General... Language & Region), then it's easy: the first one on that list is used. But what if the list does not have any of them?
When I try, it seems the Chinese localization is chosen by the Wallet app. Without the Chinese localization folder, it is Korean. If I also add
ar.lproj (Arabic)
then Arabic is chosen.
I can't discern any system here. How does Wallet choose the default localization?
The Wallet Passes docs, https://developer.apple.com/documentation/walletpasses seem to be missing any information about the features coming in iOS 18, specifically the new posterEventType, new semantic tags, and how to build out the event guide for a given ticket.
WWDC24 session: https://developer.apple.com/wwdc24/10108
Hey there!
I'm thrilled about the latest from WWDC24.
I'm particularly keen on a feature announced for the HomeKit ecosystem called "Hands-free unlock".
I'm eager to learn more about how this feature operates and how I can integrate it into my locks and access control systems.
Could anyone please provide more details on how it works and how to implement it?
P.S - I wasn't able to find any information about this in the IOS 18 Developer release notes.