我正在Xamarin.iOS应用程序中实现应用程序内设置,但是无法从pkPassLibrary.CanAddPaymentPass方法获得正确的响应。
这可以告诉您的应用程序,如果客户已经将卡添加到他们的Apple Wallet中,则可以禁用该按钮。
重现的步骤
由于需要Apple的授权,因此很难复制。但是它的基础是:

  • 创建iOS项目
  • 添加com.apple.developer.payment-pass-provisioning授权
  • 添加检查用户是否可以添加PaymentPass:
  • var pkPassLibrary = new PKPassLibrary();
    var canAddPass = pkPassLibrary.CanAddPaymentPass(primaryAccountIdentifier);
    
  • 部署到testFlight(PKPassLibrary仅在testFlight中起作用)
  • 将您的卡添加到Apple Wallet。
  • 返回并查看是否由于pkPassLibrary.CanAddPaymentPass
  • 的结果而禁用了“添加到Apple Wallet”按钮。

    预期行为pkPassLibrary.CanAddPaymentPass应该告诉我用户a是否无法向其Apple Wallet添加支付通行证
    实际行为pkPassLibrary.CanAddPaymentPass始终返回true,因此什么也没告诉我。
    我初始化PKPassLibrary()错误还是什么?有什么方法可以检查Xamarin是否存在错误?

    最佳答案

    我确实找到了问题。对于那些追随我的人,您需要确保您在付款提供商(签证,万事达卡等)上注册associatedApplicationIdentifiers。 Apple仅会让您知道与您的应用程序关联的付款通行证。该关联是在签证/万事达卡/等方面创建的,并通过panReferenceId进行通信。

    10-08 11:44