#ios #swift #paypal #sdk
Вопрос:
Мой код для paypal sdk выглядит следующим образом
func makePaypalPayment(amount:String,userEmail:String,eChitthiAmount:String) {
Checkout.start(
createOrder: { createOrderAction in
// This order is for eChitthi
let amountForeChitthi = PurchaseUnit.Amount(currencyCode: .usd, value: eChitthiAmount)
let purchaseUnitForeChitthi = PurchaseUnit(amount: amountForeChitthi)
// This order is for user
let amount = PurchaseUnit.Amount(currencyCode: .usd, value: amount)
let payeeDetail = PurchaseUnit.Payee(emailAddress:userEmail)
let purchaseUnit = PurchaseUnit(amount: amount,payee: payeeDetail)
let order : OrderRequest = OrderRequest(intent: .capture, purchaseUnits: [purchaseUnit,purchaseUnitForeChitthi])
createOrderAction.create(order: order)
}, onApprove: { approval in
approval.actions.capture { (response, error) in
print("Payment successfully")
}
}, onCancel: {
print("Order is cancelled.")
}, onError: { error in
print("Order have some error.")
}
)
}
Здесь я хочу совершить две транзакции для одного платежа. Например, пользователь хочет перевести 100 долларов своему другу, тогда 1%-ная плата будет отправлена владельцу приложения.
Итак, я использую свой сценарий, если пользователь хочет перевести 100 долларов на UserB, тогда общая сумма в 101 доллар будет снята с учетной записи paypal пользователя, и 100 долларов поступят на учетную запись пользователя, а 1 доллар — на учетную запись владельца приложения. Для этого я создал два объекта PurchaseUnit и передал оба в OrderRequest. Из-за этого получение операции не может быть завершено. (Ошибка ошибки 202.)
Я использую SDK: PayPalCheckout (0.73.0)
Язык: Swift
Справка (я реализовал код из этого документа) — https://developer.paypal.com/docs/business/native-checkout/ios/programmatically-start-sdk /
Любая помощь будет признательна. Спасибо.
Комментарии:
1. «SwiftUI» — это не язык, а фреймворк пользовательского интерфейса. Похоже, этот вопрос вообще не касается SwiftUI, а только Swift (который является языком).
Ответ №1:
При указании нескольких purchase_units в запросе на создание заказов каждый должен быть уникальным reference_id
, поскольку они являются независимыми платежами и могут быть успешными или неудачными по отдельности. Они также приведут к независимым транзакциям PayPal.
Это задокументировано на https://developer.paypal.com/docs/api/orders/v2/#orders-create-request-body
Комментарии:
1. Спасибо @Preston PHX. Это очень полезно для меня. Большое спасибо