Покупка в приложении IPHONE: можно ли подтвердить получение чека без использования внешнего сервера? - PullRequest
4 голосов
/ 04 октября 2009

У меня есть квитанция зарегистрированной транзакции, сохраненная приложением, когда транзакция была сделана, и я хотел бы спросить серверы Apple, является ли эта квитанция действительной.

Есть ли способ сделать это без использования внешнего сервера ?

Ответы [ 4 ]

6 голосов
/ 04 октября 2009

Я хотел бы спросить серверы Apple, действителен ли этот чек.

Есть ли способ сделать это без использования внешнего сервера?

Возможно, это только я, но кажется, что вы просите связаться с сервером, не связываясь с сервером, что, боюсь, совершенно невозможно.

2 голосов
/ 08 февраля 2011

Насколько я знаю, Apple предоставляет несколько json-сервисов:

Один для песочницы In App (перед отправкой):
https://sandbox.itunes.apple.com/verifyReceipt

Один для версии App Store:
https://buy.itunes.apple.com/verifyReceipt

Вы можете позвонить им, отправив квитанцию:

{
    "receipt-data" : "(actual receipt bytes here)"
}

И он возвращает ответ:

{
    "status" : 0,
    "receipt" : { ... }
}

Я предполагаю, что вы можете сделать прямой вызов в службу в своем приложении для iPhone ИЛИ вы можете вызвать свой собственный серверный скрипт, который работает как прокси для службы Apple. Это зависит от логики вашего приложения. Если вам нужно проверить квитанцию ​​на вашем сервере (т. Е. Авторизовать загрузку), вам следует вызвать скрипт сервера, в противном случае вы можете проверить квитанцию ​​непосредственно из приложения.

Ссылка на документ: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/VerifyingStoreReceipts/VerifyingStoreReceipts.html

1 голос
/ 21 августа 2012

уточнить:

  • Только Apple Server может предоставить информацию о действительности квитанция о транзакции На самом деле вы должны связаться с этим сервером даже просто выяснить, активен ли продукт (или есть ли у пользователя отменил подписку).
  • В сети создается впечатление, что это вообще невозможно или, по крайней мере, никак не безопасно свяжитесь с этим сервером Apple просто через HTTP-POST из вашего приложения. Кажется, все убеждены, что вам нужен веб-сервер, связывается из вашего приложения, и что вы должны связаться только с Apple, сервер с вашего веб-сервера.

Apple, однако, даже предоставляет код реализации (я хотел бы, чтобы я нашел это ранее) о том, как безопасно связаться с сервером проверки без другого веб-сервера между: http://developer.apple.com/library/ios/#releasenotes/StoreKit/IAP_ReceiptValidation/_index.html Эта реализация похожа на ту, что упоминал lomanf, только более подробно и со всей безопасностью, необходимой для ее работы даже с iOS 5.x. Таким образом, ответ наиболее определенно: Да.

1 голос
/ 07 октября 2009

этот случай раскрыт Это можно сделать, используя только iphone.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...