Оплата SiriKit: пользовательский INPerson больше не работает? Ошибка? ⇐ IOS
Оплата SiriKit: пользовательский INPerson больше не работает? Ошибка?
Я реализовал INPayment, который раньше работал безупречно. Поскольку я обновился до iOS 17, все работает не так, как раньше. Чтобы определить получателя платежа, я отправляю расшифровку Siri на свой сервер и ищу пользователя, а затем возвращаю информацию об этом пользователе для заполнения пользовательского объекта INPerson(). Затем я представляю этого нового INPerson пользователю для подтверждения.
funcsolvePayee(для намерения: INSendPaymentIntent, с завершением: @escaping (INSendPaymentPayeeResolutionResult) -> Void) { если пусть получатель = намерение.payee { SiriModel().resolvePayee(params: ["payee": payee.displayName]) { json, данные в если пусть dict = json как? [Строка:Любой], пусть заголовок = dict["заголовок"] как? Нить { переключить заголовок { случай «запрос.успешный»: если let data = dict["data"] как? [Строка:Строка] { пусть получатель = INPerson( personHandle: INPersonHandle(значение: данные["contact_phone"], тип: .phoneNumber), имяКомпоненты: ноль, displayName: data["contact_firstname"]! + " " + data["фамилия_контакта"]!, изображение: INImage(url: URL(строка: data["contact_photo"]!)!)), contactIdentifier: данные["contact_phone"], customIdentifier: данные["contact_id"] ) завершение (INSendPaymentPayeeResolutionResult.confirmationRequired (с: получателем)) } еще { завершение (INSendPaymentPayeeResolutionResult.unsupported (forReason: .noAccount)) } случай «токен.не.обновляемый»: Проваливаться случай «токен.истёк»: завершение (INSendPaymentPayeeResolutionResult.unsupported(forReason: .credentialsUnverified)) по умолчанию: завершение (INSendPaymentPayeeResolutionResult.unsupported (forReason: .noAccount)) } } } } еще { завершение (INSendPaymentPayeeResolutionResult.needsValue()) } } Но когда я добираюсь до метода подтверждения намерения:
func подтверждение (намерение: INSendPaymentIntent, завершение: @escaping (INSendPaymentIntentResponse) -> Void) {} Я вижу, что свойство получателя платежа, связанное с намерением, не является тем, которое я создал, а представляет собой набор совпадений SiriMatches из контактов локальной телефонной книги.
Это никогда не работало так. Есть намек на то, что происходит? Я просмотрел документацию на веб-сайте Apple, чтобы посмотреть, есть ли изменения, но ничего нового. Это ошибка? Я подумываю о расширении поддержки до уровня разработки программного кода. Спасибо
Я реализовал INPayment, который раньше работал безупречно. Поскольку я обновился до iOS 17, все работает не так, как раньше. Чтобы определить получателя платежа, я отправляю расшифровку Siri на свой сервер и ищу пользователя, а затем возвращаю информацию об этом пользователе для заполнения пользовательского объекта INPerson(). Затем я представляю этого нового INPerson пользователю для подтверждения.
funcsolvePayee(для намерения: INSendPaymentIntent, с завершением: @escaping (INSendPaymentPayeeResolutionResult) -> Void) { если пусть получатель = намерение.payee { SiriModel().resolvePayee(params: ["payee": payee.displayName]) { json, данные в если пусть dict = json как? [Строка:Любой], пусть заголовок = dict["заголовок"] как? Нить { переключить заголовок { случай «запрос.успешный»: если let data = dict["data"] как? [Строка:Строка] { пусть получатель = INPerson( personHandle: INPersonHandle(значение: данные["contact_phone"], тип: .phoneNumber), имяКомпоненты: ноль, displayName: data["contact_firstname"]! + " " + data["фамилия_контакта"]!, изображение: INImage(url: URL(строка: data["contact_photo"]!)!)), contactIdentifier: данные["contact_phone"], customIdentifier: данные["contact_id"] ) завершение (INSendPaymentPayeeResolutionResult.confirmationRequired (с: получателем)) } еще { завершение (INSendPaymentPayeeResolutionResult.unsupported (forReason: .noAccount)) } случай «токен.не.обновляемый»: Проваливаться случай «токен.истёк»: завершение (INSendPaymentPayeeResolutionResult.unsupported(forReason: .credentialsUnverified)) по умолчанию: завершение (INSendPaymentPayeeResolutionResult.unsupported (forReason: .noAccount)) } } } } еще { завершение (INSendPaymentPayeeResolutionResult.needsValue()) } } Но когда я добираюсь до метода подтверждения намерения:
func подтверждение (намерение: INSendPaymentIntent, завершение: @escaping (INSendPaymentIntentResponse) -> Void) {} Я вижу, что свойство получателя платежа, связанное с намерением, не является тем, которое я создал, а представляет собой набор совпадений SiriMatches из контактов локальной телефонной книги.
Это никогда не работало так. Есть намек на то, что происходит? Я просмотрел документацию на веб-сайте Apple, чтобы посмотреть, есть ли изменения, но ничего нового. Это ошибка? Я подумываю о расширении поддержки до уровня разработки программного кода. Спасибо
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Приложение SiriKit получает ошибку «Ошибка установки приложения» при установке приложения
Anonymous » » в форуме IOS - 0 Ответы
- 30 Просмотры
-
Последнее сообщение Anonymous
-