1 | //
|
2 | // RazorpayCheckout.m
|
3 | // RazorpayCheckout
|
4 | //
|
5 | // Created by Akshay Bhalotia on 29/08/16.
|
6 | // Copyright © 2016 Razorpay. All rights reserved.
|
7 | //
|
8 |
|
9 | #import "RazorpayCheckout.h"
|
10 | #import "RazorpayEventEmitter.h"
|
11 |
|
12 | #import <Razorpay/Razorpay-Swift.h>
|
13 |
|
14 | typedef RazorpayCheckout Razorpay;
|
15 |
|
16 | @interface RNRazorpayCheckout () <RazorpayPaymentCompletionProtocolWithData,
|
17 | ExternalWalletSelectionProtocol>
|
18 |
|
19 | @end
|
20 |
|
21 | @implementation RNRazorpayCheckout
|
22 |
|
23 | RCT_EXPORT_MODULE()
|
24 |
|
25 | RCT_EXPORT_METHOD(open : (NSDictionary *)options) {
|
26 |
|
27 | NSString *keyID = (NSString *)[options objectForKey:@"key"];
|
28 | dispatch_sync(dispatch_get_main_queue(), ^{
|
29 | Razorpay *razorpay = [Razorpay initWithKey:keyID
|
30 | andDelegateWithData:self];
|
31 | [razorpay setExternalWalletSelectionDelegate:self];
|
32 |
|
33 | NSMutableDictionary * tempOptions = [[NSMutableDictionary alloc] initWithDictionary:options];
|
34 | // tempOptions[@"integration_version"] = [self findReactNativeVersion];
|
35 | tempOptions[@"integration"] = @"react-native";
|
36 | tempOptions[@"FRAMEWORK"] = @"react-native";
|
37 | [razorpay open:tempOptions];
|
38 | });
|
39 | }
|
40 |
|
41 | /*
|
42 | - (NSString *)findReactNativeVersion {
|
43 | static dispatch_once_t onceToken;
|
44 | static NSString *BSGReactNativeVersion = nil;
|
45 | dispatch_once(&onceToken, ^{
|
46 | #ifdef RCT_REACT_NATIVE_VERSION
|
47 | // for react-native versions prior 0.55
|
48 | // see https://github.com/react-native-community/releases/blob/451f8e7fa53f80daec9c2381c7984bee73efa51d/CHANGELOG.md#ios-specific-additions
|
49 | NSDictionary *versionMap = RCT_REACT_NATIVE_VERSION;
|
50 | #else
|
51 | NSDictionary *versionMap = RCTGetReactNativeVersion();
|
52 | #endif
|
53 | NSNumber *major = versionMap[@"major"];
|
54 | NSNumber *minor = versionMap[@"minor"];
|
55 | NSNumber *patch = versionMap[@"patch"];
|
56 | NSString *prerelease = versionMap[@"prerelease"];
|
57 | NSMutableString *versionString = [NSMutableString new];
|
58 |
|
59 | if (![major isEqual:[NSNull null]]) {
|
60 | [versionString appendString:[major stringValue]];
|
61 | [versionString appendString:@"."];
|
62 | }
|
63 | if (![minor isEqual:[NSNull null]]) {
|
64 | [versionString appendString:[minor stringValue]];
|
65 | [versionString appendString:@"."];
|
66 | }
|
67 | if (![patch isEqual:[NSNull null]]) {
|
68 | [versionString appendString:[patch stringValue]];
|
69 | }
|
70 | if (![prerelease isEqual:[NSNull null]]) {
|
71 | [versionString appendString:@"-"];
|
72 | [versionString appendString:prerelease];
|
73 | }
|
74 | BSGReactNativeVersion = [NSString stringWithString:versionString];
|
75 | });
|
76 | return BSGReactNativeVersion;
|
77 | }
|
78 | */
|
79 |
|
80 | - (void)onPaymentSuccess:(nonnull NSString *)payment_id
|
81 | andData:(nullable NSDictionary *)response {
|
82 | [RazorpayEventEmitter onPaymentSuccess:payment_id andData:response];
|
83 | }
|
84 |
|
85 | - (void)onPaymentError:(int)code
|
86 | description:(nonnull NSString *)str
|
87 | andData:(nullable NSDictionary *)response {
|
88 | [RazorpayEventEmitter onPaymentError:code description:str andData:response];
|
89 | }
|
90 |
|
91 | - (void)onExternalWalletSelected:(nonnull NSString *)walletName
|
92 | WithPaymentData:(nullable NSDictionary *)paymentData {
|
93 | [RazorpayEventEmitter onExternalWalletSelected:walletName
|
94 | andData:paymentData];
|
95 | }
|
96 |
|
97 | @end
|