Skip to content

Commit

Permalink
feat(ios): startWithOrderId
Browse files Browse the repository at this point in the history
  • Loading branch information
vasylnahuliak committed Aug 17, 2021
1 parent f2fb986 commit e58f1fc
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 7 deletions.
8 changes: 5 additions & 3 deletions ios/Paypal.m
Expand Up @@ -2,8 +2,10 @@

@interface RCT_EXTERN_MODULE(Paypal, NSObject)

RCT_EXTERN_METHOD(multiply:(float)a withB:(float)b
withResolver:(RCTPromiseResolveBlock)resolve
withRejecter:(RCTPromiseRejectBlock)reject)
RCT_EXTERN_METHOD(
startWithOrderId:(NSDictionary *)options
resolver:(RCTPromiseResolveBlock *)resolve
rejecter:(RCTPromiseRejectBlock *)reject
)

@end
45 changes: 41 additions & 4 deletions ios/Paypal.swift
@@ -1,8 +1,45 @@
import PayPalCheckout

@objc(Paypal)
class Paypal: NSObject {

@objc(multiply:withB:withResolver:withRejecter:)
func multiply(a: Float, b: Float, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void {
resolve(a*b)
@objc func startWithOrderId(
_
options: NSDictionary,
resolver: @escaping RCTPromiseResolveBlock,
rejecter: @escaping RCTPromiseRejectBlock
) -> Void {
let clientID = options["clientID"] as? String ?? ""
let returnUrl = options["returnUrl"] as? String ?? ""
let orderId = options["orderId"] as? String ?? ""
let useSandbox = options["useSandbox"] as? Bool ?? true

let environment = useSandbox ? Environment.sandbox : Environment.live
let config = CheckoutConfig(
clientID: clientID,
returnUrl: returnUrl,
environment: environment
)

Checkout.set(config: config)

Checkout.setCreateOrderCallback { createOrderActions in
createOrderActions.set(orderId: orderId)
}

Checkout.setOnApproveCallback { approval in
resolver(approval.data)
}

Checkout.setOnCancelCallback { error in
rejecter("PAYPAL_CANCELLED", "The user cancelled", nil)
}

Checkout.setOnErrorCallback { error in
rejecter("PAYPAL_ERROR", error.reason, nil)
}

DispatchQueue.main.async {
Checkout.start()
}
}
}
1 change: 1 addition & 0 deletions react-native-paypal.podspec
Expand Up @@ -16,4 +16,5 @@ Pod::Spec.new do |s|
s.source_files = "ios/**/*.{h,m,mm,swift}"

s.dependency "React-Core"
s.dependency "PayPalCheckout"
end

0 comments on commit e58f1fc

Please sign in to comment.