Как проверить квитанцию ​​iTunes Store для покупки в приложении

Прежде всего, я не говорю о звонке на https://buy.itunes.apple.com/verifyReceipt/, вместо этого я спрашиваю, как проверить квитанцию ​​iTuneStore от одного из наших пользователей.

В нашем приложении есть встроенные покупки, и мы проверяем внутриигровые квитанции на нашем сервере, прежде чем предоставить продукт. Однако этот конкретный пользователь утверждал, что магазин iTunes взимал с него плату, но не получил купленные продукты, и отправил нам свою квитанцию ​​в качестве доказательства.

Так что мне интересно, можно ли каким-либо образом проверить такую ​​квитанцию. В квитанции iTunes Store есть «номер квитанции» и «номер заказа», однако при проверке квитанции в игре мы получаем transaction_id, а эти числа совершенно разные. Любая идея?

Заранее спасибо.


person Zenmaster    schedule 24.04.2012    source источник
comment
Вы когда-нибудь находили решение этой проблемы? Мне очень любопытно, возможно ли это вообще.   -  person FallingReign    schedule 22.09.2014


Ответы (4)


Вам следует обратиться в службу поддержки разработчиков Apple. Я сомневаюсь, что есть способ проверить это самостоятельно, если вы не можете найти соответствующую транзакцию в своих собственных системах.

person BastiBen    schedule 24.04.2012

Нет ручного способа сделать это, если вы не можете каким-то образом получить данные квитанции с его устройства, и в этом случае вы можете использовать API Apple, о котором вы упомянули, для проверки его требований. Если то, что он говорит, правда, предложите ему потребовать возмещение, а затем совершить повторную покупку. Он должен иметь возможность сделать это здесь.

person Rick    schedule 30.10.2014
comment
В моем случае я тестирую на своем собственном устройстве, поэтому у меня есть доступ к API, фактическая квитанция, отправленная по электронной почте от Apple, и контент для встроенных покупок разработчика, такой как идентификатор транзакции, полная закодированная квитанция. и так далее. Проблема в том, что в квитанции клиента (той, которую Apple отправляет покупателю по электронной почте), похоже, нет ничего, что связывало бы 1 к 1 с транзакцией покупки в приложении. - person nspire; 31.10.2014
comment
Да, наверное, правильно. Под квитанцией я имел в виду двоичный файл, который вы используете в коде, я считаю, что это то же самое, что вы называете полностью закодированной квитанцией. Используя это, вы можете исправить это, однако, вероятно, лучший способ сделать это - попросить клиента вернуть деньги и совершить повторную покупку. - person Rick; 03.11.2014

Исходный код находится по адресу https://github.com/roddi/ValidateStoreReceipt/blob/master/validatereceipt.m, который проверит квитанцию ​​и позволит вам проанализировать ее и выгрузить все транзакции. Если транзакция IAP есть, вы ее увидите.

Вам нужно будет написать специальное приложение для iOS, которое будет использовать этот код и передать ему квитанцию. Вроде много работы.

person w0mbat    schedule 05.11.2014
comment
Я использовал этот источник, но он устарел. Теперь нам нужно другое решение. Похоже, что этим источником было исправление Apple для уязвимости IAP в iOS 5.1. Теперь все исправлено, и этот источник не нужен. - person NoAngel; 16.06.2016

Я не говорю о звонке на https://buy.itunes.apple.com/verifyReceipt/

На самом деле у вас есть инструмент проверки онлайн-квитанции, доступный по ссылке выше. Нет лучшего способа проверить квитанцию. Оффлайн проверка возможна, но даже если она удалась, никто не может дать 100% гарантии, что Ваша квитанция действительна (может быть, такая же подпись, но все же фальшивая).

Apple обрабатывает каждую покупку на своих серверах, и в случае успеха квитанция сохраняется в базе данных. Если вы хотите проверить квитанцию, вам необходимо получить доступ к этой базе данных и запросить квитанцию. Итак, у вас есть инструмент, но вы не хотите его использовать? Тогда нет надежного пути.

person NoAngel    schedule 16.06.2016