Здравствуйте!
Решили использовать модуль для оплаты через Яндекс кассу с нашего сайта.
Биллинг еще пока старый 5.2
модуль соответственный
Информация о версии:
Сервер: вер. 5.2 сборка 1615 от 30.10.2014 20:39:49
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.7.0_17
ВНИМАНИЕ: Спецификация версии 1.7 не рекомендуется
card вер. 5.2 сборка 207 от 08.09.2014 17:34:48
yamoney вер. 5.2 сборка 48 от 09.02.2015 19:26:35
Билинг у нас за натом, пробросили порты, настроили https в билинге.
Кстати, в документации не указано и не все менеджеры и специалисты Яндекса об этом говорят.
Сертификат можно делать самоподписной, т.е. сгенерировать его на сервере и им же подписать.
Сделали на сайте форму следующего вида
Код:
<!-- Значения всех полей условны и приведены исключительно для примера
<input name="orderNumber" value="abc1111111" type="hidden"/> -->
<form action="https://demomoney.yandex.ru/eshop.xml" method="post">
<!-- Обязательные поля -->
<input name="shopId" value="33425" type="hidden"/>
<input name="scid" value="60416" type="hidden"/>
<input name="customerNumber" value="Введите номер договора" type="text"/> </br>
<input name="sum" value="Сумма к оплате" type="text"> </br>
<!-- Необязательные поля -->
<input name="paymentType" value="PC" type="hidden"/>
<input name="cps_phone" value="79110000000" type="hidden"/>
<input name="cps_email" value="user@domain.com" type="hidden"/>
<input type="submit" value="Заплатить"/>
</form>
В конфигурации модуля следующее
Код:
# yamoney.BankId=
# Номер витрины магазина в ЦПП. Выдается ЦПП.
yamoney.scid=60416
yamoney.paymenttype=AC
#
# Метод аутентификации, применяемый в запросах от ЦПП. На данный момент поддерживаются:
# pgp - подпись PGP
# md5 – криптографический хэш (в комбинации с секретным паролем Магазина)
# (должен быть прописан такой же, как в настройках магазина)
yamoney.authMethod=md5
# Секретный пароль магазина (20 случайных символов), используемый при расчете криптографического хэша.
# Должен быть указан, если выбран тип аутентификации криптографическим хэшем.
# (должен быть прописан в настройках магазина)
yamoney.shopPassword=********************
# Публичная часть PGP-ключа Магазина. (полный путь к локальному файлу)
# Должен быть указан, если выбран тип аутентификации PGP-подписью.
# Если указан, то ЦПП будет шифровать на этот ключ реестры.
# Рекомендуемые параметры ключа для подписи:
# *)Алгоритм симметричного шифрования CAST5, либо 3DES, либо IDEA;
# *)Хеш-функция SHA1;
# *)Алгоритм сжатия ZLIB, BZIP2, ZIP;
# *)Асимметричные ключи шифрования могут быть: RSA (1024 - 2048 bit), Diffie-Hellman/DSS (1024 - 4096 bit);
# (должен быть прописан в настройках магазина)
#yamoney.shopPgpKey=
# идентификатор платежа, которым будут вноситься приходы
paymenttype=7
# Шаблон комментария платежа
# ${contract} - заголовок договора
# ${contract_comment} - комментарий договора договора
# ${orderSumAmount} - сумма заказа
# ${orderSumCurrencyPaycash} - код валюты для суммы заказа (тип currencyCode)
# ${shopSumAmount} - сумма, получаемая Магазином на р/с
# ${shopSumCurrencyPaycash} - код валюты для суммы, получаемой Магазином на р/с
# ${date} - момент времени регистрации оплаты заказа в ЦПП
# ${invoiceId} - номер транзакции
# ${paymentPayerCode} - номер Кошелька «Яндекс.Денег» Покупателя
paymentCommentPattern=Платёж с Yandex.Деньги кошелька ${paymentPayerCode}, транзакция ${invoiceId}
Собственно, завели аккаунт, заполнили данные, отправили анкету с данными для подключения
Код:
checkURL
для боевых платежей
https://***.***.***.***/bgbilling/yaexecuter
для тестирования
https://***.***.***.***/bgbilling/yaexecuter
для боевых платежей
https://***.***.***.***/bgbilling/yaexecuter
для тестирования
https://***.***.***.***/bgbilling/yaexecuter
Секретное слово магазина
(shoppassword)
**********************
Адреса магазина:http://www.provider.ru/
для боевых платежей:http://www.provider.ru/
Наименование товара
successURL
https://***.***.***.***/bgbilling/webexecuter?mid=10&module=yamoney
failURL
https://***.***.***.***/bgbilling/webexecuter?mid=10&module=yamoney
для тестирования:
Наименование товара
successURL
https://***.***.***.***/bgbilling/webexecuter?mid=10&module=yamoney
failURL
https://***.***.***.***/bgbilling/webexecuter?mid=10&module=yamoney
successURL и failURL – адреса, на которые мы редиректим браузер плательщика после завершения платежа или ошибки. Максимальная длина URL – 200 зн.
Это по настройкам, может, кому необходимо будет.
Теперь проблема.
Неодного тестового платежа пока не проходит.
Проверяем локально
https://192.168.***.***/bgbilling/yaexecuterвыдает
Код:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
ru.bitel.server.servlet.filters.MultipartFilter.doFilter(MultipartFilter.java:42)
ru.bitel.server.servlet.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
root cause
java.lang.IllegalAccessError: HTTP-GET-requests can not be!
ru.bitel.bgbilling.modules.yamoney.server.YaExecuter.doGet(YaExecuter.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
ru.bitel.server.servlet.filters.MultipartFilter.doFilter(MultipartFilter.java:42)
ru.bitel.server.servlet.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.16 logs.
Apache Tomcat/7.0.16
Тут было про версию протокола 3, правда для 6-го биллинга, но таки проверим.
https://192.168.***.***/bgbilling/yaexecuter3вывод
Код:
HTTP Status 404 - /bgbilling/yaexecuter3
type Status report
message /bgbilling/yaexecuter3
description The requested resource (/bgbilling/yaexecuter3) is not available.
Apache Tomcat/7.0.16
Лезем в логи access
там
Код:
185.42.144.183 610ccj39zish1u90kjac2z0wb [22/Apr/2015:22:14:08 +0500] 0.006 500 2098 "GET /bgbilling/yaexecuter HTTP/1.1"
77.75.157.166 - [22/Apr/2015:22:15:20 +0500] 0.056 200 330 "POST /bgbilling/yaexecuter HTTP/1.1" targetcurrency=643&wbp_ShopKeyID=2350484147&shopSumBankPaycash=1003&cps_theme=default&isOUTshop=true&requestDatetime=2015-04-22T20:15:20.163+03:00&wbp_
shoperrorinfo=Shop error&merchant_order_id=xxx1_220415201509_00000_33425&customerNumber=xxx1&sumCurrency=10643&wbp_Version=2&shopSumAmount=105.45&cps_user_country_code=RU&wbp_ShopEncryptionKey=hAAAEicBAI/gWZ7nPmvPCEf6CyNZrDT/M5dqhxF0IQeB+pv7vetU153
5irDRuShgwsyUjxsUxHiwFgoOO51QqednVreeWZO16APsHZhWFQGw4cZhSzOlC5470PgGSGt/MZTqxetuSYe9ZbnaOMXqy3grEkzB/Z1iim40KHtTyewiIiXJhAKJ&ErrorTemplate=ym2xmlerror&shopSumCurrencyPaycash=10643&orderSumAmount=111.00&cps_user_ip=94.230.128.122&shopId=33425&succe
ssURL=&action=checkOrder&orderSumCurrencyPaycash=10643&cps_changeSum=false&payment-name=РћРћРћ "ТЕЛЕКОМ-Р—Р.Рў"&cps_eplDisable=true&cps_rebillingAllowed=false&wbp_ShopAddress=77.75.157.167:9128&orderSumBankPaycash=1003&invoiceId=200000046207
5&paymentType=PC&wbp_CorrespondentID=F55EFDE2D16BA0456B2DDBE468A6C0F8B1D0D105&orderCreatedDatetime=2015-04-22T20:15:10.714+03:00&wbp_ShopAdditionalAddress=77.75.157.167:9138&paymentPayerCode=4100322344779&rebillingOn=false&wbp_InactivityPeriod=2&is
ViaWeb=true&SuccessTemplate=ym2xmlsuccess&md5=4C42242D32C9FD0CDE6ADF44633A4298&cps_region_id=54&WAShopID=1936803660&cps-source=default&nst_unilabel=1cc9eadd-0001-5000-8000-000000047546&scid=60416&wbp_messagetype=MoneyInvitationRequest&
Жду помощи, кто делал.
Вроде постарался все подробно расписать.