Содержание
В настоящий момент наша компания занимается освоением китайского рынка. А поскольку все дороги во современном мире ведут в Поднебесную, мы решили поделиться собственным опытом. Начнем с платежных сервисов. Мы тщательно изучили весь предложенный ассортимент и сделали свой выбор.
Введение
Ping++ это платформа, распространенная в Китае и обеспечивающая единый интерфейс для оплаты с помощью местных сервисов. Например, таких гигантов, как WeChat и Alipay. Возможно использование бесплатное версии, но стоит обратить внимание, что она ограничена всего тысячью API запросов в месяц. Со всеми тарифными планами можно ознакомиться по ссылке.
Ping++ стоит использовать в случае, если вы нацелены на китайский рынок и планируете использовать местные платежные системы. Платформа обеспечит простой единый интерфейс для осуществления платежей и сбора статистики. Именно поэтому задачи, связанные с монетизацией на китайском рынке, мы решали с ее помощью.
Впрочем, изначально в качестве основного варианта рассматривался Stripe, который как раз заявил о поддержке Alipay и WeChat. Но этот вариант не прокатил. Так как по факту поддержка Alipay со стороны Stripe сосредоточена на Гонконге и ограничена относительно небольшим списком валют, даже не включающим в себя юани.
Что же касается WeChat, то фактическая поддержка на сегодняшний день просто отсутствует. В итоге мы пришли к выводу использовать Stripe только для платежей с помощью карты. Кстати, они не сильно распространены в Китае, в отличии от WeChat и Alipay, которые используются более чем в 80% случаев.
Преимущества
Как указано выше, главным достоинством Ping++ является единый интерфейс для различных платежных систем. Это большой плюс, как для удобства реализации, так и для дальнейшей поддержки. Из всех сервисов, работающих на территории Китая, Ping++ возможно является самым продвинутым и оптимальным решением, так как он сводит к минимуму разрозненность интерфейсов китайских платежных систем.
Кстати, флоу работы и оплаты для разных систем очень похож. Сперва формируется хэш с необходимыми данными и создается счет помощью pingpp. Полученный счет либо передается клиентскому SDK, либо формирует QR код из ссылки, указанной в теле счета. После этого пользователь совершает оплату и результат возвращается в виде колбэка на сервер.
Существует официальный гем, который весьма прост в использовании и позволяет создать счет на оплату, а также верифицировать колбэк после ее осуществления. У гема довольно неплохая документация, но с одним недостатком, о котором пойдет речь дальше. Кроме того, Ping++ предоставляет возможность работы в тестовом режиме, который достаточно точно соответствует реальному флоу.
Недостатки
Самый первый недостаток, который бросается в глаза — это отсутствие какой-либо локализации. Везде используется китайский язык. Эту проблему вроде как можно решить с помощью перевода. Но вы же понимаете, что такое машинный перевод. Порой он вводит в заблуждение. Проблемы могут также возникнуть при общении с техподдержкой. Support Ping++ использует исключительно китайский язык и игнорирует обращения на английском.
Второй недостаток заключается в том, что, в отличие от Stripe, Ping++ не гарантирует мгновенности предоставления статуса платежа. По крайней мере, на сегодняшний день. В итоге, порой возможен вариант, что callback придет значительно позже.
Взаимодействие с платежными системами
При работе с платежными системами Ping++ использует так называемые “каналы”. Для одной системы может существовать несколько каналов, которые используются для различных типов платежей (QR код, мобильное приложение, веб-сайт). По умолчанию все каналы неактивны и перед использованием того или иного метода оплаты, нужно пройти активацию. Со стороны Ping++ она не представляет сложности, так как к каждому каналу прилагаются инструкция и требования. Например, тут можно ознакомиться с активацией QR кода для WeChat.
Сложность представляет настройка самих платежных систем, а также, в силу того же китайского языка, запутанность сервисов и бюрократических издержек. Если с заполнением полей все более-менее понятно, так как в инструкции описано где их брать, то с настройкой самих приложений могут возникнуть трудности. Впрочем, они преодолимы. Как правило, все сводится к активации определенных услуг и функций приложения, необходимых для использования Ping++.
Также стоит обратить внимание, что при переключении активированного канала с тестового в живой режим могут появиться ошибки. Чаще всего они связаны с конфигурацией самих платежных систем.
С основными преимуществами и недостатками мы разобрались. Теперь самое время рассказать о специфике работы с платформой Ping++.
Начнем с главного. Ping++ имеет хорошую документацию по настройке и работе с сервисом. Пользуясь переводчиком, вы поймете, если не все, то почти все. Основная документация доступна по ссылке. В этой статье мы подразумеваем, что вы уже создали приложение и увидели панель управления.
Конфигурация платформы
После создания приложения вам нужно пройти верификацию с использованием бизнес информации. Это необходимо для перехода в live режим. Если вы не прошли верификацию, то увидите соответствующее уведомление в настройках.
При инициализации pngpp следует указать AppId, который можно получить на дашборде
Путь к публичному ключу, который находиться в настройках приложения. Секретные ключи для тестового и продакшн окружения на том же ‘Test Secret Key’ и ‘Live Secret Key’ соответственно.
Далее рекомендуется установить собственный ключ, активировать его и указать в pingpp путь к своему приватному ключу.
После этого необходимо настроить веб хуки в тестовом и живом режиме. Если оплата прошла успешно, в теле запроса JSON с информацией о платеже и мета датой, указанной при создании счета, сработает колбэк с результатом по указанному адресу.
Кроме того, в форме нужно указать адрес для обращения веб хука и событие. В нашем случае событие называется charge.succeed.
Чтобы сделать запрос на создание платежа нужно передать хэш с определенной информацией. Для разных каналов требования к хэшу могут различаться. Вы можете узнать об этом подробнее, изучив документацию.
Каналы Ping++ используются для доступа к платежным сервисам. Например, для оплаты через QR код с помощью WeChat и Alipay будут вам нужны два канала: ‘wx_pub_qr’ и ‘alipay_qr’. Для мобильного приложения: ‘wx’ и ‘alipay’. Для оплаты через Alipay на ПК — ‘alipay_pc_direct’.
Каждый канал активируется заполнением данных о приложении. Также следует позаботиться о правильной настройке, верификации и активации нужных функций в самом приложении. Даже если канал активирован и в тестовом окружении все работает, некорректная настройка самих платежных сервисов будет выдавать ошибку на проде.
Платежи с помощью WeChat QR кода
Сперва нужно выбрать канал, соответствующий способу оплаты
После этого нужно заполнить информацию о приложении. Инструкция перед вами.
С помощью pingpp делается запрос на создание счета. Аргументом передается хэш с необходимой информацией, например:
Цена указывается в минимальной единице. В метадате передается информация, которая будет использована при получении колбэка с результатом. Если все впорядке, то создается счет и возвращается в виде JSON. В случае с QR кодом нас интересует поле ‘wx_pub_qr’
Из указанного адреса необходимо сформировать и передать пользователю QR код. После того, как юзер его просканирует, он попадает в приложение для совершения оплаты. Как только деньги уходят по заданному адресу, инициируется колбэк с результатом. Прежде чем предпринимать какие-либо действия с данными, пришедшими из колбэка, следует верифицировать запрос. Это делается в целях вашей же безопасности. К слову, Pingpp позволяет легко и просто верифицировать запросы.
Чтобы отобразить результат, пользователю нужно инициировать вотчер для проверки статуса платежа. Вы можете разобрать этот кейс подробнее по ссылке.
Платежи с помощью Alipay PC direct
Выбор канала
Заполнение необходимыми ключами
С помощью pingpp делается запрос на создание счета. Аргументом передается хэш с необходимой информацией, например:
В ответ приходит JSON счета на оплату, который нужно передать в H5 SDK. Речь идет о подключаемой JavaScript библиотеке.
Предложенный метод перенаправляет пользователя в соответствующий сервис для оплаты. А затем возвращает по адресу, указанному в поле extra. Остается лишь дождаться колбэка с результатом платежа.
Платежи с помощью мобильного приложения
Для WeChat и Alipay процесс абсолютно идентичен. Отличается лишь название канала. ‘wx’ для WeChat, ‘alipay’ для Alipay.
Выбор каналов
Мобильное приложение делает API запрос с необходимыми параметрами. Сервер формирует хэш и создает счет. Полученный JSON возвращается на мобильное приложение. Далее проводится оплата с использованием SDK и срабатывает колбэк, возвращающий результат на сервер.
Заключение
Предметно изучив Ping++, мы пришли к выводу, что несмотря на возможные трудности с конфигурацией, платформа достаточно проста в обращении. И если вы планируете выход на китайскую аудиторию, на нее стоит обратить пристальное внимание. Наша собственная практика наглядно продемонстрировала: Ping++ существенно облегчает доступ к распространенным платежным сервисам made in China.