sber3dswithcustomcert's People
sber3dswithcustomcert's Issues
Открытие ссылки на оплату
Здравствуйте.
Столкнулся с такой проблемой после реализации данного решения в проекте -
на физическом устройстве не отрывается ссылка на оплату, которая приходит с платежного шлюза в виде https://3dsec.sberbank.ru/payment/merchants/sbersafe_sberid/payment_ru.html?mdOrder=....
Причем, если подставить https://3dsecmt.sberbank.ru/payment/se/keys.do, то все работает.
Сертификаты "прожёвывает". Пробовал и готовые и сам генерировал.
А самое интересное в том, что при подстановке ссылки от шлюза в ваше приложение все работает! С примером от Сбера такая же ситуация.
Настройки NSAppTransportSecurity
какие только не пробовал. И NSAllowsArbitraryLoads
и кастомный на домен Сбера:
<key>NSExceptionDomains</key>
<dict>
<key>sberbank.ru</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<true/>
<key>NSThirdPartyExceptionMinimumTLSVersion</key>
<string>TLSv1.2</string>
<key>NSRequiresCertificateTransparency</key>
<true/>
</dict>
</dict>
Разницы нет.
Грешу на то, что в проекте какие-то настройки перебивают NSAllowsArbitraryLoads. Больше мыслей нет.
Ошибку выдает следующую.
Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made."
UserInfo={NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _WKRecoveryAttempterErrorKey=<WKReloadFrameErrorRecoveryAttempter: 0x283da99e0>, networkTaskDescription=LocalDataTask <606449F7-14C4-40D1-B148-A62A4B1A8413>.<2>, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9802, NSErrorPeerCertificateChainKey=(
"<cert(0x11c508800) s: 3dsec.sberbank.ru i: Russian Trusted Sub CA>",
"<cert(0x11c514960) s: Russian Trusted Sub CA i: Russian Trusted Root CA>",
"<cert(0x11c521160) s: Russian Trusted Root CA i: Russian Trusted Root CA>"
), NSErrorFailingURLStringKey=https://3dsec.sberbank.ru/payment/merchants/sbersafe_sberid/payment_ru.html?mdOrder=6f552a21-abf4-78db-a31d-4c8f28084cc4, NSUnderlyingError=0x283317840 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "(null)" UserInfo={_kCFStreamPropertySSLClientCertificateState=0, _kCFNetworkCFStreamSSLErrorOriginalValue=-9802, _kCFStreamErrorDomainKey=3, _kCFStreamErrorCodeKey=-9802}}, NSErrorClientCertificateStateKey=0, NSErrorFailingURLKey=https://3dsec.sberbank.ru/payment/merchants/sbersafe_sberid/payment_ru.html?mdOrder=6f552a21-abf4-78db-a31d-4c8f28084cc4, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <606449F7-14C4-40D1-B148-A62A4B1A8413>.<2>, NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef: 0x280dd8280>, NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made.}
Может быть что-то посоветуете, куда копать?
Открытие sberbank.ru после редиректа
Спасибо за проект и статью на хабре, очень помогла.
Но сталкнулся с интересной проблемой. Если открывать https://sberbank.ru, то с него редиректит на https://www.sberbank.ru и периодически вылазит вот такая ошибка как на скриншоте.
Насколько могу понимать, это ошибка провайдера. Т.е. сертификат не подгрузился, хотя все нужные ветки в коде сработали.
Если открывать https://www.sberbank.ru напрямую, или https://www.sberbank.ru/ru/certificates, https://3dsecmt.sberbank.ru/payment/se/keys.do – то сразу все ок.
На вашем тестовом проекте повторить такое не смог. Единственное отличие – вебвью в коде создается. После перезапуска все работает. Еще смог повторить и в сафари (сертификат с госуслуг в айфон установил):
Потратил уже кучу времени, может вы с таким сталкивались? :)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.