Обновления Facebook в реальном времени Обработка платежей
Я работаю над приложением Facebook Canvas с возможностью покупки внутри приложения. Вот где я сейчас нахожусь:
Я настроил свою страницу обратного вызова обновлений в реальном времени, и она вызывается по желанию, когда в транзакциях что-то изменилось.
Когда вызывается обратный вызов RTU, я успешно получаю поля PaymentID, Time и Changed_Fields.
Я могу успешно обработать тестовые транзакции в своем приложении Canvas, а также получить ожидаемый обратный вызов javascript в приложении Canvas с подробной информацией об оплате.
Пока все отлично работает, но... проблема, с которой я сталкиваюсь, связана с задержкой завершения платежа, спорами и т. Д. Используя пример сценария, когда пользователь совершает покупку, но закрывает браузер перед закрытием диалогового окна окончательного платежа: оплата сделано, но обратный вызов JavaScript в приложении не вызывается. Таким образом, в этой ситуации все, что существует, - это плата для пользователя, и запись обратного вызова RTU, которую я сохраняю на своей базе данных на сервере, содержащая PaymentID, время и Changed_Fields (в которых ничего не сказано, кроме "действий").
Первая путаница:
После прочтения документации и просмотра видео о внедрении я должен иметь возможность вызывать API платежей с графиком - из серверной части моего сервера - для получения подробной информации об оплате при получении этого вызова RTU. Поскольку эта страница (которая называется C# asp.net) не является моим приложением, я не могу понять, как мне получить маркер приложения для любых звонков. Во всех моих поисках каждый пример получения токена включает в себя вход пользователя в систему / авторизацию страницы для получения токена доступа. Поскольку эта страница является объектом обработки внутреннего сервера, это нецелесообразно. Если бы кто-нибудь мог пролить свет на то, как я должен это сделать, это было бы здорово. У меня есть установленный Facebook SDK для.net, но я еще не понял этот шаг.
Вторая путаница:
Я попробовал другой маршрут, думая, что хорошо, создайте уникальный request_id, создайте запись с базовой информацией о покупке, которая должна произойти, затем обновите эту запись по мере необходимости, когда будет вызван RTU. Таким образом, мое приложение может просто следить за тем, чтобы покупка была обновлена как завершенная и т. Д. Проблема здесь, однако, заключается в том, что идентификатор платежа еще не существует, когда начинается покупка, и, наоборот, вызов RTU не приносит никаких данных работать с другими, чем PaymentID, время и "действия". Я не могу найти ничего связывающего два события, чтобы справиться с выполнением.
Третья путаница:
В данных Json, которые отправляются с вызовом RTU, Changed_Fields показывает как "действия" независимо от того, выполнен платеж или нет. Так что либо я что-то упускаю полностью в этом обратном вызове сервера, либо это вопрос моего первого замешательства, как мне получить токен приложения для вызова API графика для деталей?
Все это заставляет меня чувствовать себя довольно глупо, потому что должно быть что-то, чего мне не хватает где-то в потоке. Хотя у меня почти нет таблеток от мигрени, поэтому я надеюсь, что кто-нибудь скажет мне, по крайней мере, какой шаг я не понимаю, и, возможно, какое-то направление, где можно найти информацию о том, как это сделать.
Примечание: я понимаю, что эти вопросы не являются "конкретными для кода", но Facebook говорит, чтобы размещать вопросы здесь. Пожалуйста, прости меня, если есть лучшее место.
1 ответ
Ничего себе, 2 дня головных болей и в тот момент, когда я задал вопрос, я нашел, как получить свой токен по адресу:
https://developers.facebook.com/docs/facebook-login/access-tokens
Я прочитал эту страницу несколько раз прежде, но пропустил часть при получении токена приложения, что было легко сделать с помощью идентификатора и секрета.
Теперь я могу приступить к анализу результатов платежа и их обработке.