gpt4 book ai didi

ios - 无法从 ApplePay PKPaymentAuthorizationViewController 获取电子邮件

转载 作者:搜寻专家 更新时间:2023-11-01 06:23:46 28 4
gpt4 key购买 nike

我正在使用 ApplePay 并需要电子邮件作为联系信息。当我尝试接收电子邮件时,我收到的电子邮件结果是“Shipping”,我什至不知道它来自哪里。

我在请求中有必填的电子邮件字段,并填写了电子邮件信息。

request.requiredShippingAddressFields = PKAddressField.PostalAddress | PKAddressField.Email

代码如下:

func paymentAuthorizationViewController(controller: PKPaymentAuthorizationViewController!, didAuthorizePayment payment: PKPayment!, completion: ((PKPaymentAuthorizationStatus) -> Void)!) {

let address: ABRecord! = payment.shippingAddress

let emails: ABMultiValueRef = ABRecordCopyValue(address, kABPersonEmailProperty).takeRetainedValue() as ABMultiValueRef
if ABMultiValueGetCount(emails) > 0 {
let email = ABMultiValueCopyLabelAtIndex(emails, 0).takeRetainedValue()
NSLog(email) //Here prints "Shipping"
}
...
}

这是接收电子邮件的正确位置吗?如果不是,正确的做法是什么?


尝试获取电话号码 (kABPersonPhoneProperty),结果也打印为“Shipping”。

最佳答案

您的代码中有一个微妙的“拼写错误”:)。 ABMultiValueCopyLabelAtIndex 复制条目的标签(即“Shipping”)。您需要使用 ABMultiValueCopyValueAtIndex 的值。

  let emails: ABMultiValueRef = ABRecordCopyValue(address, kABPersonEmailProperty).takeRetainedValue() as ABMultiValueRef
if ABMultiValueGetCount(emails) > 0 {
let email = ABMultiValueCopyValueAtIndex(emails, 0).takeRetainedValue() as String
NSLog(email) //Here prints your email address!
}

关于ios - 无法从 ApplePay PKPaymentAuthorizationViewController 获取电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28305830/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com