Платежная подписка - тестовый обратный вызов

В настоящее время мы изучаем новые подписные платежи Facebook. У нас уже есть рабочая настройка оплаты для Facebook, и URL-адрес обратного вызова установлен правильно. Если я делаю регулярный тестовый платеж, обратный вызов вызывается правильно.

Настройка для тестирования подписки осуществляется в соответствии с этим. Но, если я выбираю всегда успех или всегда терпит неудачу, не происходит обратного вызова к URL-адресу обратного вызова платежей.

Он возвращает объект, который говорит, что подписка активна, и имеет идентификатор.

{status: "active", subscription_id: 204626XXXXXX}

Ответ 1

Подписки Facebook не являются обычной покупкой.

Вам нужно будет настроить обновления в реальном времени на объект "payment_subscriptions" и прослушать эти доступные поля: ('status', 'pending_cancel', 'payment_status', 'last_payment'). См. Документацию: http://developers.facebook.com/docs/payments/subscriptions/, есть раздел "Потребление обновлений в реальном времени"

Каждый раз, когда пользователь подписывается или отменяет (или неявное обновление), вы попадаете в соответствующий идентификатор подписки. Затем вы можете запросить API-интерфейс Graph об этом объекте подписки.

Вы также можете получить список подписки для любого пользователя с помощью вызова Graph Api в разделе "/payment.subscriptions"

Все эти вызовы должны выполняться с токеном доступа к приложениям.

Я должен признать, что этот процесс очень раздражает, если вы всегда выполняли "синхронные" покупки. Я действительно выполнял подписки, это было любопытное и болезненное путешествие;)

Надеюсь, что это поможет

Ответ 2

Возможно ли, что вы получили запрос, отправленный на URL обратного вызова, если состояние подписки изменилось, и у вас уже есть активная подписка для пользователя? Я бы подумал, что вы получите ошибку на стороне клиента в этом случае, но я не вижу никаких доказательств того, что для этого есть код ошибки.

Что произойдет, если вы делаете регулярный тестовый платеж несколько раз за ту же учетную запись?

Ответ 3

Подписки сопоставляются с объектами OpenGraph на стороне Facebook, а также с виртуальной валютой, поэтому я подозреваю, что на стороне сервера нет обратного вызова, все, что вы можете сделать, это сделать какой-то пост http (через форму, для пример) insde обратный вызов FB.ui и реализовать метод doPost в сервлете. Это будет способ получить информацию о подписке в некоторый источник данных.

Изменить: относительно обратного вызова платежей, те элементы, которые заказывают информацию, рассчитываются на основе объекта OG, facebook не отправляет запрос payments_get_items, поэтому нет способа получить информацию о заказе после создания подписки. С другой стороны, возможно, что вы получите некоторый payment_status_update в соответствующем сервлете (я говорю о сервлетах, потому что я программист на Java, но общая идея применима к любой технологии, которую вы выберете)