Я столкнулся с проблемой интеграции оплаты Paypal через Braintree SDK (песочница) в iOS с использованием Ioni c Cordova. В настоящее время я использую cordova-plugin-braintree": "^0.5.0"
для интеграции. При сборке ошибок не было, но при запуске приложения в симуляторе xcode возникает ошибка.
Вот возвращенная ошибка:
2020-08-06 11:13:43.519 TestApp[14370:510078] Untrusted SSL certificate chain. Refusing to communicate with PayPal servers.
2020-08-06 11:14:42.581040+0800 TestApp[14370:512020] Connection 9: received failure notification
2020-08-06 11:14:40.372864+0800 TestApp[14370:512187] Connection 2: strict TLS Trust evaluation failed(-9802)
2020-08-06 11:14:40.373839+0800 TestApp[14370:512187] Connection 2: TLS Trust encountered error 3:-9802
2020-08-06 11:14:42.582533+0800 TestApp[14370:512020] Connection 9: failed to connect 3:-9858, reason -1
2020-08-06 11:14:42.582903+0800 TestApp[14370:512020] Connection 9: encountered error(3:-9858)
2020-08-06 11:14:42.093680+0800 TestApp[14370:512020] [BoringSSL] boringssl_session_handshake_error_print(111) [C8.1:2][0x7fe27ff09ac0] 140610784112104:error:1000042e:SSL
2020-08-06 11:14:42.590881+0800 TestApp[14370:512020] Task <EB8A44D8-C0BA-4A3B-8C9B-7F524D38799A>.<3> HTTP load failed, 0/0 bytes (error code: -1200 [3:-9858])
2020-08-06 11:14:42.592 TestApp[14370:510078] [BraintreeSDK] WARNING Failed to send analytics event. Remote configuration fetch failed. An SSL error has occurred and a secure connection to the server cannot be made
Хотя он возвращает эту ошибку приложение:
I already tried whitelisting domains and embedding the required frameworks in xcode.
I also already edited the info.plist
in xcode like this one.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> CFBundleDevelopmentRegion en_US CFBundleDisplayName TestApp CFBundleExecutable $ (EXECUTABLE_NAME) CFBundleIdentifier $ (PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName $ (PRODUCT_NAME) 1036 * *1037* APPL CFBundleShortVersionString 1.2.3 CFBundleSignature ???? CFBundleVersion 1.2.3 ЛСР Требуется IPhoneOS NSAppTransportSecurity NSAllowsArbitraryLoads NSCameraUsageDescription Вы можете делать фотографии NSMainNibFile NSMainNibFile ~ ipad UILaunchStoryboardName CDVLaunchScreen UIRequiresFullScreen UISupportedInterfaceOrientations UIInterfaceOrientationPortrait UISupportedInterfaceOrientations ~ ipad UIInterfaceOrientationOrientation 1087 1089 * UIInterfaceOrientationLandscapeRight
Вот моя реализация с использованием angular, но я думаю, что ошибка не отсюда:
import { Braintree, PaymentUIOptions, PaymentUIResult } from '@ionic-native/braintree/ngx';
...
paynow() {
this.braintree.initialize(this.BRAINTREE_TOKEN)
.then(() => this.braintree.presentDropInPaymentUI(this.paymentOptions))
.then((result: PaymentUIResult) => {
if (result.userCancelled) {
console.log('User cancelled payment dialog.');
} else {
console.log('User successfully completed payment!');
console.log('Payment Nonce: ' + result.nonce);
console.log('Payment Result.', result);
}
})
.catch((error: string) => console.error(error));
}
Я тестирую это приложение в этой среде:
- Xcode v11
- iPhone x (iOS 13)
- Ioni c v6.10.1
- Cordova v9.0.0
- Cordova- ios v5.1.1
Давно застрял на этой проблеме. Надеюсь, ты поможешь мне с этим. Заранее спасибо!