При создании моего PKPaymentRequest
я указываю некоторые обязательные поля, например:
request.requiredBillingAddressFields = PKAddressFieldPostalAddress|PKAddressFieldEmail|PKAddressFieldName;
request.requiredShippingAddressFields = PKAddressFieldEmail|PKAddressFieldName;
Примечание. Мне нужны только адрес электронной почты и имя для выставления счетов, но если я не укажу PKAddressFieldEmail|PKAddressFieldName
в requiredShippingAddressFields
, пользовательский интерфейс ApplePay не запрашивает это.
Затем я пытаюсь извлечь имя следующим образом. Не всегда ясно, приходит ли он на адрес доставки или адрес выставления счета, поэтому я проверяю оба.
NSString *name = (__bridge_transfer NSString *) ABRecordCopyCompositeName(payment.shippingAddress);
if (!name) {
name = (__bridge_transfer NSString *) ABRecordCopyCompositeName(payment.billingAddress);
}
Но иногда имя просто не появляется. Периодически, иногда появляется, иногда ничего не меняется. Это заставляет меня подозревать, что это ошибка в iOS 8.4, но я определенно не исключаю, что это моя вина. (Обычно так.)
Кто-нибудь еще столкнулся с этим? Есть ли обходной путь?