Я продолжаю использовать образец выставления счетов в приложении, предоставляемый google, и я хочу заменить их класс безопасности реализацией на моем сервере (как они рекомендуют). Похоже, я должен заменить следующий вызов для реализации на моем сервере:
/**
* Verifies that the data was signed with the given signature, and calls
* {@link ResponseHandler#purchaseResponse(Context, PurchaseState, String, String, long)}
* for each verified purchase.
* @param startId an identifier for the invocation instance of this service
* @param signedData the signed JSON string (signed, not encrypted)
* @param signature the signature for the data, signed with the private key
*/
private void purchaseStateChanged(int startId, String signedData, String signature) {
// Instead of using the local version included on the client,
// this should be an http call to our server which has the
// implementation.
ArrayList<Security.VerifiedPurchase> purchases;
purchases = Security.verifyPurchase(signedData, signature);
if (purchases == null) {
return;
}
// Then the rest gets executed after the http response comes back.
...
confirmNotifications(startId, notifyIds);
Поэтому я бы заменил выше, и когда я получу ответ с моего сервера, я запустил бит confirmNotifications() и т.д. Но есть много вещей, которые могут пойти не так, сеть может выпасть и т.д. Поэтому я предполагаю рынок будет продолжать отправлять мне сообщения, пока я не получу бит confirmNotifications()?
Немного испугался, что что-то пойдет наперекосяк, когда я начну проверять на своем сервере, и у меня есть куча пользователей, чьи кредитные карты были списаны, но не видят, что контент отображается на их устройстве.
Кроме того, я думаю, что поток пиратства для моего приложения довольно низок, но я беспокоюсь о том, чтобы оставить свой открытый ключ на рынке, встроенный в клиента. Если в будущем у меня будет популярный титул, злоумышленники могут посмотреть на некоторые старые приложения от меня и вытащить их из них (не уверен, насколько это опасно, если они получают открытый ключ).
благодаря
да, рынок продолжит отправку уведомлений о событиях, которые вы никогда не подавали с подтверждением подтверждения, поскольку документ гласит:
CONFIRM_NOTIFICATIONS: этот запрос подтверждает, что ваше приложение получило сведения об изменении состояния покупки. Google Play отправляет уведомления об изменении состояния покупки в ваше приложение, пока вы не подтвердите, что получили их.
посмотрите здесь