2012-04-24 5 views
0

Я успешно интегрировал покупку inapp в своем приложении. Но я ушел с сомнением и искал, как справиться с этой ситуацией.
Когда пользователь инициирует покупку inapp, он предоставляет свои данные аутентификации. Но по какой-то причине приложение потерпело крах, прежде чем я обработал метод finishedTransaction и разблокировал функции в приложении.
В следующий раз, когда приложение будет запущено, как я узнаю, успешна покупка или нет?iOS - покупка Inapp - обработка аварии

+0

Предоставьте некоторый код, не должно быть сбоя – Oritm

+0

@Oritm - Мой код не сбой. Только для меры предосторожности, я хочу обработать эту ситуацию, а также в моем коде. – Satyam

ответ

0

Только finishTransaction удаляет транзакции от paymentsQueue. Поэтому, если сбой до, оплата останется в очереди, и в следующий раз, когда пользователи запустит приложение, ему будет предложено ввести свой пароль, и вы сможете продолжить покупку снова.

Но если авария после finishTransaction встречается, вызова, прямо перед вами при условии содержания, пользователь заметит thta dontent не предусмотрен, так что он сможет нажать восстановить button.Or вы могли мужчина флаг самостоятельно после того, как finishTransaction и проверьте, предоставили ли вы то, что вы должны были предоставить.

+0

Мой вопрос о сбое перед вызовом «finishTransaction». – Satyam

+0

. Все в порядке, как я ответил в первой части моего вопроса. –

+0

Позвольте мне объяснить подробнее: пользователь ввел учетные данные в хранилище приложений, Apple, возможно, обработала платеж и вычитала деньги с кредитной карты. Когда яблоко отправляет ответ успешной оплаты и перед вызовом «finishTransaction», приложение распалось. Деньги вычитаются, но я не занимался обработкой finalTransaction и разблокировал ресурсы ... как с этим бороться? – Satyam

0

Я не думаю, что вы можете.

Но если пользователь приобрел, а яблоко получило платеж, пользователь всегда может восстановить свою покупку. Когда вы нажимаете кнопку оплаты (или что вы запрограммировали), она скажет: вы уже купили этот товар, хотите ли вы восстановить эту покупку?

Если восстановлено, тогда будет вызываться законченноеТрансакция.

Вам не придется платить снова.