Интеграция полосы не работает в строительствах TestflightIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Интеграция полосы не работает в строительствах Testflight

Сообщение Anonymous »

Я написал код для интеграции класса Plipe Paymentssheet в моем коде. Платежи работают нормально, когда я использую схему отладки на моем XCode. Но это вообще не работает над сборками Testflight. По схеме выпуска (TestFlight Builds) платежный лист открывается на мгновение, но закрывается самостоятельно с кодом ошибки 51, но это отлично работает с режимом схемы отладки на Scode, я не могу установить опубликованный ключ в AppDelegate, поскольку у меня есть несколько географии для поддержки, а опубликованный ключ поступает из API. Для цели тестирования я хочу, чтобы у меня были тестовые ключи. Но это < /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() + 6) {
self.delegate?.endLoader()
self.presentNativePaymentsSheet(withUserSubsId: String(format: "%.0f", userSubscriptionId ?? 0))
}
}

default:
self.delegate?.endLoader()
}

}

}

}


Подробнее здесь: https://stackoverflow.com/questions/795 ... ght-builds
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»