Я интегрировал платеж PayPal, но когда я ввел данные кредитной карты в режиме реального времени, она возвращает ошибку -
UNAUTHORIZED_PAYMENT - The merchant does not accept payments of this type. (401)
Я использую бизнес-аккаунт, и разрешения включены.
var payPalConfig = PayPalConfiguration()
var environment:String = PayPalEnvironmentProduction {
willSet(newEnvironment) {
if (newEnvironment != environment) {
PayPalMobile.preconnect(withEnvironment: newEnvironment)
}
}
}
var acceptCreditCards: Bool = true {
didSet {
payPalConfig.acceptCreditCards = acceptCreditCards
}
}
func paypalPaymentGatewaySetup(){
payPalConfig.acceptCreditCards = acceptCreditCards;
payPalConfig.merchantName = "User"
payPalConfig.merchantPrivacyPolicyURL = NSURL(string: "https://www.paypal.com/webapps/mpp/ua/privacy-full") as URL?
payPalConfig.merchantUserAgreementURL = NSURL(string: "https://www.paypal.com/webapps/mpp/ua/useragreement-full") as URL?
payPalConfig.languageOrLocale = NSLocale.preferredLanguages[0]
payPalConfig.payPalShippingAddressOption = .payPal;
PayPalMobile.preconnect(withEnvironment: environment)
}
override func viewDidLoad() {
super.viewDidLoad()
paypalPaymentGatewaySetup()
}
Теперь я вызываю функцию makeRequestForPayment по нажатию кнопки «Внести платеж», и у меня также есть делегат статуса импорта импорта. Но в методе делегата PayPal я получаю "Продавец не принимает этот тип оплаты Unauthorized 401". Я сделал настройку делегата приложения с идентификатором клиента Production
func makingRequestForPayment(){
// let globalPriceInStr = UserDefaults.standard.value(forKey: "PriceForPayment") as? String ?? ""
let globalPriceInStr = "1"
let totalPrice = NSDecimalNumber(string: globalPriceInStr)
let item1 = PayPalItem(name: "Membership", withQuantity: 1, withPrice: totalPrice, withCurrency: "USD", withSku: "SivaGanesh-0001")
print(item1)
let items = [item1]
print(items)
let subtotal = PayPalItem.totalPrice(forItems: items)
let shipping = NSDecimalNumber(string: "0.00")
let tax = NSDecimalNumber(string: "0.00")
let paymentDetails = PayPalPaymentDetails(subtotal: subtotal, withShipping: shipping, withTax: tax)
let total = subtotal.adding(shipping).adding(tax)
let payment = PayPalPayment(amount: total, currencyCode: "USD", shortDescription: "Advertisement Submission", intent: .sale)
payment.items = items
payment.paymentDetails = paymentDetails
if (payment.processable) {
let paymentViewController = PayPalPaymentViewController(payment: payment, configuration: payPalConfig, delegate: self)
present(paymentViewController!, animated: true, completion: nil)
}
else{
print("Payment not processable: \(payment)")
}
}