Лирика: После обновления "поломалась" оплата с Яндекс Кассой. Теперь для оплаты нужно выдавать Яндексу PaymentID вместо OrderID. Из самого битрикса при формировании запроса на оплату все заработало. Проблема в том что в моем случае оплата инициируется из мобильного приложения, которое знать ничего не знает про PaymentID. Ему передается только параметр orderid и оно передает его. Хорошо конечно бы исправить приложение, но это несколько недель займет. Хочу при формировании заказа передавать в приложение PaymentID, но не вижу как его получить.
Вопрос: есть некий $ORDER_ID только что сформированного закза через CSaleOrder::Add, как вытащить PaymentID? Насколько я понимаю он автоматически формируется при создании заказа через CSaleOrder, но сам CSaleOrder ничего не знает про payment.
Решение для socket ошибок через https - установить подписанный сертификат. Для Bitrix-Env это будет /etc/nginx/ssl/cert.pem
Подозреваю что тест использует curl под капотом, т.е. руками можно проверить вот так:
Код
curl
Если это тестовая машинка - то конечно нужно добавить домен в локальный /etc/hosts
Файл /etc/nginx/ssl/cert.pem состоит сразу из ключа и сертификата. Ключ идет первым, потом сертификат, потом ssl bundle (доп. сертификаты для корректной цепочки от CA).
Без bundle - все равно ошибка:
Код
# curl curl: (60) Peer certificate cannot be authenticated with known CA certificates More details here: curl performs SSL certificate verification by default, using a "bundle" of Certificate Authority (CA) public keys (CA certs). If the default bundle file isn't adequate, you can specify an alternate file using the --cacert option. If this HTTPS server uses a certificate signed by a CA represented in the bundle, the certificate verification probably failed due to a problem with the certificate (it might be expired, or the name might not match the domain name in the URL). If you'd like to turn off curl's verification of the certificate, use the -k (or --insecure) option.
С подписанным сертификатом и bundle:
Код
# curl
В output отдаст html контент сайта.
После замены сертификата нужно убедиться что nginx подхватил все корректно и перезапустить\сделать reload для nginx:
Код
# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Код
# /etc/init.d/nginx restart Stopping nginx: [ OK ] Starting nginx: [ OK ]