标签: passkit

iOS PassKit部分更新和隐私

我们想向用户发送iPhone电子钱包卡,其中包含他们随时需要携带的重要健康信息。

出于隐私方面的考虑,我们只想使用Web表单,让用户输入必填字段,包括其姓名和生日等,生成通行证,然后丢弃用户信息,以保护其隐私。

然而,我们也想更新pkpass文件(或内吧,pass.json在未来,如果信息发生变化的一些点文件)。似乎无法进行部分更新(!)?

您将如何解决?

澄清细节

根据@PassKit的回答,我想验证是否可以通过在请求中包括以下完整的 JSON文件来更新“优惠券”卡背面的某些文本:

{
  "coupon": {
     "backFields": [
       {
           "key": "info",
           "label": "Important Information",
           "value": "THIS INFORMATION CHANGED."
       }
     ]
  }
}
Run Code Online (Sandbox Code Playgroud)

iphone json ios passkit wallet

6
推荐指数
1
解决办法
85
查看次数

无法获取 Apple Pay 付款所需的信息,例如电子邮件、电话号码、街道等

  • 如何提取电子邮件、电话号码等值。我成功获得了帐单和送货地址。但是,我无法获得电子邮件和电话号码。请以编程方式建议我......(使用 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 位置等)动态生成运费。建议我解决这种情况。

在此处输入图片说明

objective-c ios passkit xcode6 applepay

5
推荐指数
1
解决办法
339
查看次数

如何使用 PKAddPaymentPassViewController 将卡添加到 Apple Pay?

我做了足够的研究,将我的应用程序中列出的信用卡/借记卡添加到 Apple Pay。我从 Apple Developer Forums 了解到,苹果禁止为此目的使用私有 API。

当我联系他们时,我意识到了 PKAddPaymentPassViewController。这个类包含一些方法和委托。

其实我想知道如何使用它,何时使用这个控制器,如何设置它来完成它。

任何帮助将不胜感激

ios passkit swift applepay

5
推荐指数
1
解决办法
4218
查看次数

iPhone钱包没有提供设备ID和推送令牌

我在我的服务器上集成"注册设备以接收推送通知"Web服务时遇到问题,因为Apple Passes.链接如下:https://developer.apple.com/library/content/documentation/PassKit/Reference/PassKit_WebService/WebService.html.

我按照以下步骤操作:

  1. 能够通过可下载的链接在iPhone上成功生成和分发Apple Pass.

  2. 下载通行证后,我将该通行证添加到Apple Wallet.添加时,会调用注册Web服务,该服务必须向我的服务器发送设备ID和推送令牌,但我将这两个参数设置为nil.

  3. 但是,当我在AdvanceRestClient上使用相同的URL(使用虚拟设备ID和令牌)时,我确实得到了回调.

我想知道为什么我没有从iPhone获取设备ID和推送令牌?

push-notification ios passkit applepay wallet

5
推荐指数
0
解决办法
494
查看次数

如何在Xcode 9中实现PKPaymentAuthorizationViewControllerDelegate for iOS 8向后兼容性?

我正在尝试构建一个在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我的定义,我看到以下内容: …

xcode passkit swift applepay xcode9

5
推荐指数
1
解决办法
480
查看次数

Apple Wallet NFC encryptionPublicKey

Apple的Wallet传递密钥文档中,可以选择与NFC相关的数据字典.我知道使用此密钥需要Apple的特别许可.而不管 ...

message直截了当 - 这是传递 NFC终端的数据(通常是客户的唯一标识符).

encryptionPublicKey然而,让我感到困惑.Apple声明它是增值服务协议使用的公共加密密钥. 使用包含组P256的ECDH公钥的Base64编码的X.509 SubjectPublicKeyInfo结构.

任何人都可以解释这第二句意味着什么和/或开发人员必须做些什么来产生这个?从什么甚至可以生成公钥/私钥?

nfc ios passbook passkit applepay

5
推荐指数
1
解决办法
1586
查看次数

如何使用 PKAddPassButton 为具有本地化的通行证创建“添加到苹果钱包”按钮

在我的 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)

在此处输入图片说明

按钮有几个问题:

  1. 钱包图片不可见。
  2. 即使在设备级别更改语言后也不会本地化文本。

我应该使用一些自定义 UIButton 来实现这一点吗?任何帮助表示赞赏。

ios passkit swift wallet

5
推荐指数
1
解决办法
3904
查看次数

检查卡是否已添加到 PassKit 库中

我正在尝试使用 PKAddPaymentPassRequest 将银行卡(“付款通行证”)添加到电子钱包。

所以问题是,如何查询通行证库以检查我的卡(或任何其他卡)是否已在库中?例如,要在我的应用程序中卡的 UI 上显示“Apple Pay 已启用”复选标记。

ios passkit applepay wallet

5
推荐指数
2
解决办法
6056
查看次数

如何在仅 SwiftUI 的项目中正确呈现 PKPaymentAuthorizationViewController?

我已经访问过这个答案,这里提出present方法不起作用(不再?)。当我使用 aUIViewControllerRepresentable然后将其显示为工作表时,它看起来非常糟糕:

屏幕截图 UIViewControllerRepresentable 表

如果我使用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)

uikit passkit applepay swiftui

5
推荐指数
1
解决办法
297
查看次数

有时不显示 PKPaymentAuthorizationController

我们遇到了一个问题,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调用该方法时,屏幕上没有任何反应。如果您能帮助我们解决问题,我们将不胜感激。这是示例代码:

\n
        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)

ios passkit swift applepay

5
推荐指数
0
解决办法
578
查看次数