我们想向用户发送iPhone电子钱包卡,其中包含他们随时需要携带的重要健康信息。
出于隐私方面的考虑,我们只想使用Web表单,让用户输入必填字段,包括其姓名和生日等,生成通行证,然后丢弃用户信息,以保护其隐私。
然而,我们也想更新的pkpass文件(或内吧,pass.json在未来,如果信息发生变化的一些点文件)。似乎无法进行部分更新(!)?
您将如何解决?
根据@PassKit的回答,我想验证是否可以通过在请求中包括以下完整的 JSON文件来更新“优惠券”卡背面的某些文本:
{
"coupon": {
"backFields": [
{
"key": "info",
"label": "Important Information",
"value": "THIS INFORMATION CHANGED."
}
]
}
}
Run Code Online (Sandbox Code Playgroud) 如何提取电子邮件、电话号码等值。我成功获得了帐单和送货地址。但是,我无法获得电子邮件和电话号码。请以编程方式建议我......(使用 kABPersonEmailProperty 等)
此外,在
(void) paymentAuthorizationViewController:(PKPaymentAuthorizationViewController*)controller
didSelectShippingAddress:(ABRecordRef)address
completion:(void (^)(PKPaymentAuthorizationStatus, NSArray *, NSArray *))completion
{
-------- // I am getting street property Nil.
}
Run Code Online (Sandbox Code Playgroud)所有人都建议从“didAuthorizePayment”获取,但我需要根据“街道”(如 POBox 位置等)动态生成运费。建议我解决这种情况。

我做了足够的研究,将我的应用程序中列出的信用卡/借记卡添加到 Apple Pay。我从 Apple Developer Forums 了解到,苹果禁止为此目的使用私有 API。
当我联系他们时,我意识到了 PKAddPaymentPassViewController。这个类包含一些方法和委托。
其实我想知道如何使用它,何时使用这个控制器,如何设置它来完成它。
任何帮助将不胜感激
我在我的服务器上集成"注册设备以接收推送通知"Web服务时遇到问题,因为Apple Passes.链接如下:https://developer.apple.com/library/content/documentation/PassKit/Reference/PassKit_WebService/WebService.html.
我按照以下步骤操作:
能够通过可下载的链接在iPhone上成功生成和分发Apple Pass.
下载通行证后,我将该通行证添加到Apple Wallet.添加时,会调用注册Web服务,该服务必须向我的服务器发送设备ID和推送令牌,但我将这两个参数设置为nil.
但是,当我在AdvanceRestClient上使用相同的URL(使用虚拟设备ID和令牌)时,我确实得到了回调.
我想知道为什么我没有从iPhone获取设备ID和推送令牌?
我正在尝试构建一个在Xcode 9上使用Apple Pay的应用程序.部署目标是iOS 8.
直到Xcode 8.3.3(和iOS 10 SDK),这完美地运作:
extension MyViewController: PKPaymentAuthorizationViewControllerDelegate {
func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController, didSelectShippingAddress address: ABRecord, completion: @escaping (PKPaymentAuthorizationStatus, [PKShippingMethod], [PKPaymentSummaryItem]) -> Void) {
// handle the ABRecord for iOS 8
}
@available(iOS 9.0, *)
func paymentAuthorizationViewController(_ controller: PKPaymentAuthorizationViewController, didSelectShippingContact contact: PKContact, completion: @escaping (PKPaymentAuthorizationStatus, [PKShippingMethod], [PKPaymentSummaryItem]) -> Void) {
// handle the PKContact on iOS 9 and later
}
Run Code Online (Sandbox Code Playgroud)
现在,使用Xcode 9,我得到以下构建错误:
协议'PKPaymentAuthorizationViewControllerDelegate'要求'paymentAuthorizationViewController(_:didSelectShippingContact:completion :)'在iOS 8.0及更高版本上可用
这意味着,我应该改变@available(iOS 9, *)对@available(iOS 8, *).
查看PKPaymentAuthorizationViewControllerDelegate我的定义,我看到以下内容: …
在Apple的Wallet传递密钥文档中,可以选择与NFC相关的数据字典.我知道使用此密钥需要Apple的特别许可.而不管 ...
message直截了当 - 这是传递给 NFC终端的数据(通常是客户的唯一标识符).
encryptionPublicKey然而,让我感到困惑.Apple声明它是增值服务协议使用的公共加密密钥. 使用包含组P256的ECDH公钥的Base64编码的X.509 SubjectPublicKeyInfo结构.
任何人都可以解释这第二句意味着什么和/或开发人员必须做些什么来产生这个?从什么甚至可以生成公钥/私钥?
在我的 iOS 项目中,我有一个屏幕,允许用户创建苹果通行证并将其添加到钱包中。Apple 建议使用 PKAddPassButton 创建“添加到苹果钱包”按钮。当我尝试使用以下代码创建苹果通行证时:
let passButton = PKAddPassButton(addPassButtonStyle: PKAddPassButtonStyle.black)
passButton.frame = CGRect(x:45.0, y: 340.0, width: 320, height: 50)
view.addSubview(passButton)
Run Code Online (Sandbox Code Playgroud)
按钮有几个问题:
我应该使用一些自定义 UIButton 来实现这一点吗?任何帮助表示赞赏。
我正在尝试使用 PKAddPaymentPassRequest 将银行卡(“付款通行证”)添加到电子钱包。
所以问题是,如何查询通行证库以检查我的卡(或任何其他卡)是否已在库中?例如,要在我的应用程序中卡的 UI 上显示“Apple Pay 已启用”复选标记。
我已经访问过这个答案,这里提出的present方法不起作用(不再?)。当我使用 aUIViewControllerRepresentable然后将其显示为工作表时,它看起来非常糟糕:
如果我使用overlay它,它看起来就像我想要的那样,但overlay不能从Button.
这是(精简的)代码:
public struct ContentView: View {
@ObservedObject var model: RootViewModel
@State private var tappedDonate = false
public var body: some View {
Button(action: {
tappedDonate = true
}, label: {
Text("Donate")
.frame(width: 300, height: 44, alignment: .center)
})
.frame(width: 300, height: 20, alignment: .center)
.padding()
.background(Color.black)
.foregroundColor(.white)
.cornerRadius(22)
.sheet(isPresented: $tappedDonate) {
ApplePayWrapper(request: model.buildApplePayment())
.background(Color.clear)
}
}
public init(model: RootViewModel) {
self.model = model
} …Run Code Online (Sandbox Code Playgroud) 我们遇到了一个问题,PKPaymentAuthorizationController尽管一切都已完成,但未呈现 ,如示例中所述。APKPaymentRequest在代码中创建,传递给PKPaymentAuthorizationController初始值设定项,之后也present对其调用该方法。PKPaymentAuthorizationController当您第一次尝试在新安装的应用程序中显示控制器时,会强烈地再现此行为。并且该Bug在后续使用过程中会随机重现;在这种情况下,不可能找到任何明确的复制方法。\n问题绝对不是创建 所需的任何值 \xe2\x80\x8b\xe2\x80\x8b 中的拼写错误PKPaymentRequest,我的意思是merchantIdentifier, supportedNetworks, merchantCapabilities, countryCode,currencyCode并且paymentSummaryItems,我们已经不止一次地检查过这一点。这个问题也不在于将Double价格值转换为NSDecimalNumber,正如 Stack Overflow 上类似问题的答案之一所写。我们使用了调试器,这表明 已经PKPaymentRequest成功创建,就像它PKPaymentAuthorizationController本身一样。但当present调用该方法时,屏幕上没有任何反应。如果您能帮助我们解决问题,我们将不胜感激。这是示例代码:
let request = PKPaymentRequest()\n request.merchantIdentifier = "HERE_IS_OUR_M_ID"\n request.supportedNetworks = [.amex, .visa, .masterCard]\n request.merchantCapabilities = .capability3DS\n request.countryCode = "US"\n request.currencyCode = "USD"\n request.paymentSummaryItems = [\n PKPaymentSummaryItem(label: "BUY_ITEM_TEXT", amount: NSDecimalNumber(value: buyItemPrice)),\n PKPaymentSummaryItem(label: "COMPANY_NAME", amount: NSDecimalNumber(value: buyItemPrice), type: .final)\n …Run Code Online (Sandbox Code Playgroud)