Giter Club home page Giter Club logo

cloudpayments-sdk-ios's People

Contributors

a-ignatov-cp avatar iskhakovs avatar modernx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cloudpayments-sdk-ios's Issues

Стабильные версии YandexPaySDK

Из-за отсутствия фиксации одной стабильной версии YandexPaySDK (при каждом обновлении пода CloudPayments обновляется и YandexPaySDK) нет возможности установить новые версии Cloudpayments при таргете прилы < 13 (при попытке установки 1.2.15 поды пишут, что минимальная таргет версия приложения (у нас - 12.0) не поддерживается). Также отсылаю к этой issue #20, данная проблема также была связана с отсутствием жесткой фиксации версии YandexPaySDK (яндекс пей сдк обновилось, а название делегатов остались прежними - соответственно летели ошибки компиляции).
Просьба зафиксировать жестко версию YandexPaySDK внутри вашего фреймворка.

Поддержка SPM

Добавьте поддержку SPM.

// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.

import PackageDescription

let package = Package(
    name: "CloudPayments",
    platforms: [
        .iOS(.v13),
    ],
    products: [
        // Products define the executables and libraries a package produces, and make them visible to other packages.
        .library(
            name: "CloudPayments",
            targets: ["CloudPayments"]),
    ],
    dependencies: [
        // Dependencies declare other packages that this package depends on.
        // .package(url: /* package url */, from: "1.0.0"),
        .package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.3.0"),
        .package(url: "https://github.com/tristanhimmelman/ObjectMapper.git", from: "4.2.0")
    ],
    targets: [
        // Targets are the basic building blocks of a package. A target can define a module or a test suite.
        // Targets can depend on other targets in this package, and on products in packages this package depends on.
        .target(
            name: "CloudPayments",
            dependencies: [
                "Alamofire",
                "ObjectMapper"
            ]),
        .testTarget(
            name: "CloudPaymentsTests",
            dependencies: [
                "Alamofire",
                "ObjectMapper",
                "CloudPayments"
            ]),
    ]
)

Отправка email с встроенной формой

Провожу интеграцию в ios приложение и стоит задача отправки email пользователя во время передачи данных PaymentData. Передача вместе с jsonData не отображает email в админке, таким образом стоит вопрос, как можно отправить email пользователя вместе с PaymentData? Интеграция проводится со стандартной формой. Видел возможность передачи email со своей формой, но там нужна криптограмма. Есть ли возможность передавать email со стандартной формой без использования криптограммы?

bundleID error unwrapping optional value

orderID = 123

let paymentData = PaymentData.init(publicId: "...")
.setAmount("1")
.setCurrency(.ruble)
.setAccountId("111")
.setInvoiceId("(orderId)")

    let configuration = PaymentConfiguration.init(
        paymentData: paymentData,
        delegate: self,
        uiDelegate: self,
        scanner: nil,
        useDualMessagePayment: true,
        disableApplePay: true
    )

    PaymentForm.present(with: configuration, from: self)

после запуска кода, получаем эксепшн:

CloudpaymentsSDK/Bundle+Extenstions.swift:15: Fatal error: Unexpectedly found nil while unwrapping an Optional value
2022-04-08 20:57:51.540116+0500 papoose[34497:4851643] CloudpaymentsSDK/Bundle+Extenstions.swift:15: Fatal error: Unexpectedly found nil while unwrapping an Optional value

import Foundation

extension Bundle {
class var mainSdk: Bundle {
let bundle = Bundle.init(for: PaymentForm.self)
let bundleUrl = bundle.url(forResource: "Cloudpayments", withExtension: "bundle")
return Bundle.init(url: bundleUrl!)! -------> вот на этой строке, ругается на bundleUrl!
}
}

XCode 14

Hello

Can you fix compile error for XCode 14?

Payment failed, but without error, if project targeted for iOS >= 14

Платеж не проходит, но SDK заканчивает процедуру успешно. Такое происходит если проект в который встраивается SDK таргетирован на iOS 14 или выше.
Для iOS 14 в WKWebView нужно явно разрешать JavaScript.
Заработало после добавления в ThreeDsProcessor.swift

>                        let webView = WKWebView.init()
+                        webView.configuration.preferences.javaScriptEnabled = true
+                        if #available(iOS 14.0, *) {
+                            webView.configuration.defaultWebpagePreferences.allowsContentJavaScript = true
+                        }
>                        webView.navigationDelegate = self

Добавить sdk в публичный репозиторий Cocoapods

В репозитории предыдущей версии sdk была заведена issue по добавлению sdk в публичный репозиторий Cocoapods. Вы закрыли issue, ссылаясь на эту новую версию sdk, но она также не выложена в Cocoapods и её также приходится подключать через git. Копирую сюда текст проблемы из старой issue.

В некоторых ситуациях невозможно воспользоваться этим SDK из-за того, что он не публичный.

Например, добавить как зависимость другой библиотеке.
.podspec синтаксис dependency https://guides.cocoapods.org/syntax/podspec.html#dependency не поддерживает git-ссылки на репозиторий библиотеки.

Есть ли у вас в планах добавление sdk в паблик?

Не собирает

.../Cloudpayments/sdk/Sources/PaymentForm/PaymentOptionsForm.swift:23:13 Type 'PaymentOptionsForm' does not conform to protocol 'YandexPayButtonDelegate'

ОШибка в сборке проекта

Pods/YandexLoginSDK/lib/Classes/Private/Core/Storage/YXLSecureStorage.m:36:47 'unarchiveObjectWithData:' is deprecated: first deprecated in iOS 12.0 - Use +unarchivedObjectOfClass:fromData:error: instead

После установки пода выпадает всегда ошибка эта в билде.

Поды подключаю вот так по документации.

#Payment
pod 'Cloudpayments', :git => "https://github.com/cloudpayments/CloudPayments-SDK-iOS", :branch => "master"
pod 'CloudpaymentsNetworking', :git => "https://github.com/cloudpayments/CloudPayments-SDK-iOS", :branch => "master"

Чистый URLSession без Alamofire

Привет!

Мы в нашем проекте сейчас используем CodyFire которая базируется на Alamofire 4 и как я понимаю CloudPayments использует Alamofire 5. В результате cocoapods ни на что не ругается (потому что в вашем podspec явно версия Alamofire не указана), но SDK CloudPayments не компилируется явно из-за того, что установлен Alamofire 4.

CodyFire наша разработка, мы сами планируем выпилить Alamofire за ненадобностью и всегда хорошо выбросить лишнюю зависимость.
В данный момент пока не знаем что делать, возможно быстро перепишем CodyFire без Alamofire, чтобы не блочить разработку т.к. интеграция платежки это последнее, что осталось перед релизом нашего приложения.

Мы и вам желаем от Alamofire избавиться как можно скорее 🙂

paymentFormWillHide and paymentFormDidHide do not get called when X button is clicked card form

  • Open a simple card form
  • Click X button to close
 private func openPaymentPage(model: CloudPaymentsViewModel.PaymentModel) {

        let paymentData = PaymentData()
            .setAmount(model.amount)
            .setCurrency(model.currency)
            .setAccountId(model.userId)
            .setEmail(model.email)
            .setPayer(model.payerData)

        let configuration = PaymentConfiguration.init(
            publicId: model.publicKey,
            paymentData: paymentData,
            delegate: self,
            uiDelegate: self,
            scanner: nil,
            showEmailField: true,
            useDualMessagePayment: true,
            disableApplePay: true,
            disableYandexPay: true)

        let formVC = PaymentForm.present(with: configuration, from: self)
    }

Below is your code which closes that form and it doesn't have the calls of that delegate methods

self.closeButton.onAction = { [weak self] in
            guard let self = self else {
                return
            }
            let parent = self.presentingViewController
            self.dismiss(animated: true) {
                if let parent = parent {
                    if !self.configuration.disableApplePay || !self.configuration.disableYandexPay {
                        PaymentForm.present(with: self.configuration, from: parent)
                    }
                }
            }
        }

It would be great to have also in the delegate method a property which will indicate which exact form was closed PaymentCardForm or PaymentProcessingForm or others

Не билдится (version 1.1.11)

Версия 1.1.11 не билдится под iOS 12.0, на более новых ОС такая же проблема
Так же хотелось бы вас попросить рассмотреть возможность отказаться от добавления дополнительных зависимостей, в частности SnapKit и PromiceKit. Они заметно увеличивают вес билда.

Лог ошибок прилагаю

Failed to build module 'YandexPaySDK'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)', while this compiler is 'Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12)'). Please select a toolchain which matches the SDK.

Failed to build module 'XPlatPaySDK'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.4.2 (swiftlang-1205.0.28.2 clang-1205.0.19.57)', while this compiler is 'Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12)'). Please select a toolchain which matches the SDK.

Библиотека не подгружается в Kotlin Multiplatform проект

Попытки подгрузить библиотеку заканчиваются ошибкой: Cloudpayments does not specify a Swift version and none of the targets (ios) integrating it have the SWIFT_VERSION attribute set. Please contact the author or set the SWIFT_VERSION attribute in at least one of the targets that integrate this pod.
Исходя из текста данной ошибки подозреваю, что нужно добавить версию Swift в podspec файл Cloudpayments-SDK-IOS.podspec. Помогите разобраться с данной проблемой. Поиск информации о том, как добавить версию Swift в iOS таргеты в kotlin multiplatform не дал никакого результата, все предложения оказались нерабочими

Demo проекта не работает

Вечная загрузка, которая обрывается по таймауту от сервера

Снимок экрана 2021-04-21 в 18 13 59

Лог ошибки:

2021-04-21 18:13:47.788221+0700 demo[1398:1665715] [Snapshotting] Snapshotting a view (0x7f8dc9d18100, _UIButtonBarStackView) that has not been rendered at least once requires afterScreenUpdates:YES.
2021-04-21 18:13:47.955069+0700 demo[1398:1666135] [] nw_protocol_get_quic_image_block_invoke dlopen libquic failed
2021-04-21 18:14:47.831326+0700 demo[1398:1667716] Task <24B62552-5FF2-4D44-9838-AF49ECC089BD>.<1> finished with error [-1001] Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x6000022f0c90 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <24B62552-5FF2-4D44-9838-AF49ECC089BD>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <24B62552-5FF2-4D44-9838-AF49ECC089BD>.<1>"
), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://wp-demo.cloudpayments.ru/index.php/wp-json/wc/v3/products, NSErrorFailingURLKey=https://wp-demo.cloudpayments.ru/index.php/wp-json/wc/v3/products, _kCFStreamErrorDomainKey=4}
Ошибка при запросе данных Optional(Alamofire.AFError.sessionTaskFailed(error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x6000022f0c90 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <24B62552-5FF2-4D44-9838-AF49ECC089BD>.<1>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
    "LocalDataTask <24B62552-5FF2-4D44-9838-AF49ECC089BD>.<1>"
), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://wp-demo.cloudpayments.ru/index.php/wp-json/wc/v3/products, NSErrorFailingURLKey=https://wp-demo.cloudpayments.ru/index.php/wp-json/wc/v3/products, _kCFStreamErrorDomainKey=4}))

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.