Я интегрировал класс платежных листов Stripe в свой код. Платежи отлично работают, когда я запускаю приложение, используя схему отладки в XCode. Тем не менее, интеграция не выполняется при строительствах Testflight. API. В целях тестирования я хочу, чтобы TestFlight Builds использовал полоски тестовых клавиш, но я не уверен, как настроить эту настройку. < /P>
class StripePaymentsManager {
var paymentSheet: PaymentSheet?
weak var delegate: StripePaymentsManagerProtocol?
func presentNativePaymentsSheet(withUserSubsId: String?) {
let topVC = AppHelper.getTopViewController() ?? UIViewController()
paymentSheet?.present(from: topVC) { paymentResult in
var status: Bool = false
switch paymentResult {
case .completed:
status = true
case .canceled:
status = false
case .failed(let error):
print("Debug Payment failed: \(error)")
status = false
}
self.delegate?.didCompleteTransaction(WithStatus: status, userSubscriptionId: withUserSubsId)
}
}
func processBVPayments(productType: String, planIds: [String]) {
var params: [String : Any] = [:]
self.delegate?.beginLoader()
params["email"] = UserHandler.shared.userEmail ?? ""
params["product_type"] = productType
params["plan_id"] = planIds
AppAPIHandler.shared().POST(withAPIEndpoint: StripePayementsEndpoint.paymentsInitiate.rawValue, getParams: nil, postParams: params, shouldHandleErrorAutomatically: false) { (status, data) in
guard let data = data else {return}
switch status {
case .success:
DispatchQueue.main.async {
let dataModel = try? JSONDecoder().decode(StripePaymentsIntentAPIModel.self, from: data)
print("debug dataModel:",dataModel?.data?.paymentIntentID, dataModel?.data?.publishableKey )
guard let paymentIntentClientSecret = dataModel?.data?.paymentIntentID,
let publishableKey = dataModel?.data?.publishableKey,
let applePay = dataModel?.data?.applePay,
let userSubscriptionId = dataModel?.data?.userSubscriptionID else { return }
STPAPIClient.shared.publishableKey = publishableKey
// StripeAPI.defaultPublishableKey = publishableKey
// Stripe.setDefaultPublishableKey(publishableKey)
var configuration = PaymentSheet.Configuration()
configuration.merchantDisplayName = "XYZ, Inc."
if let merchantId = applePay.merchantId, let merchantCountryCode = applePay.merchantCountryCode {
configuration.applePay = .init(merchantId: merchantId, merchantCountryCode: merchantCountryCode, buttonType: .plain, paymentSummaryItems: nil, customHandlers: nil)
}
configuration.allowsDelayedPaymentMethods = false
self.paymentSheet = PaymentSheet(
paymentIntentClientSecret: paymentIntentClientSecret,
configuration: configuration
)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.delegate?.endLoader()
self.presentNativePaymentsSheet(withUserSubsId: String(format: "%.0f", userSubscriptionId ?? 0))
}
}
default:
self.delegate?.endLoader()
}
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... ght-builds
Интеграция полосы не работает в строительствах Testflight ⇐ IOS
Программируем под IOS
-
Anonymous
1745419646
Anonymous
Я интегрировал класс платежных листов Stripe в свой код. Платежи отлично работают, когда я запускаю приложение, используя схему отладки в XCode. Тем не менее, интеграция не выполняется при строительствах Testflight. API. В целях тестирования я хочу, чтобы TestFlight Builds использовал полоски тестовых клавиш, но я не уверен, как настроить эту настройку. < /P>
class StripePaymentsManager {
var paymentSheet: PaymentSheet?
weak var delegate: StripePaymentsManagerProtocol?
func presentNativePaymentsSheet(withUserSubsId: String?) {
let topVC = AppHelper.getTopViewController() ?? UIViewController()
paymentSheet?.present(from: topVC) { paymentResult in
var status: Bool = false
switch paymentResult {
case .completed:
status = true
case .canceled:
status = false
case .failed(let error):
print("Debug Payment failed: \(error)")
status = false
}
self.delegate?.didCompleteTransaction(WithStatus: status, userSubscriptionId: withUserSubsId)
}
}
func processBVPayments(productType: String, planIds: [String]) {
var params: [String : Any] = [:]
self.delegate?.beginLoader()
params["email"] = UserHandler.shared.userEmail ?? ""
params["product_type"] = productType
params["plan_id"] = planIds
AppAPIHandler.shared().POST(withAPIEndpoint: StripePayementsEndpoint.paymentsInitiate.rawValue, getParams: nil, postParams: params, shouldHandleErrorAutomatically: false) { (status, data) in
guard let data = data else {return}
switch status {
case .success:
DispatchQueue.main.async {
let dataModel = try? JSONDecoder().decode(StripePaymentsIntentAPIModel.self, from: data)
print("debug dataModel:",dataModel?.data?.paymentIntentID, dataModel?.data?.publishableKey )
guard let paymentIntentClientSecret = dataModel?.data?.paymentIntentID,
let publishableKey = dataModel?.data?.publishableKey,
let applePay = dataModel?.data?.applePay,
let userSubscriptionId = dataModel?.data?.userSubscriptionID else { return }
STPAPIClient.shared.publishableKey = publishableKey
// StripeAPI.defaultPublishableKey = publishableKey
// Stripe.setDefaultPublishableKey(publishableKey)
var configuration = PaymentSheet.Configuration()
configuration.merchantDisplayName = "XYZ, Inc."
if let merchantId = applePay.merchantId, let merchantCountryCode = applePay.merchantCountryCode {
configuration.applePay = .init(merchantId: merchantId, merchantCountryCode: merchantCountryCode, buttonType: .plain, paymentSummaryItems: nil, customHandlers: nil)
}
configuration.allowsDelayedPaymentMethods = false
self.paymentSheet = PaymentSheet(
paymentIntentClientSecret: paymentIntentClientSecret,
configuration: configuration
)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
self.delegate?.endLoader()
self.presentNativePaymentsSheet(withUserSubsId: String(format: "%.0f", userSubscriptionId ?? 0))
}
}
default:
self.delegate?.endLoader()
}
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79588614/stripe-integration-not-working-in-testflight-builds[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия