@cashfreepayments/react-native-cashfree-cn-sdk 1.0.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +79 -0
  3. package/android/.gradle/7.2/dependencies-accessors/dependencies-accessors.lock +0 -0
  4. package/android/.gradle/7.2/dependencies-accessors/gc.properties +0 -0
  5. package/android/.gradle/7.2/executionHistory/executionHistory.lock +0 -0
  6. package/android/.gradle/7.2/fileChanges/last-build.bin +0 -0
  7. package/android/.gradle/7.2/fileHashes/fileHashes.bin +0 -0
  8. package/android/.gradle/7.2/fileHashes/fileHashes.lock +0 -0
  9. package/android/.gradle/7.2/fileHashes/resourceHashesCache.bin +0 -0
  10. package/android/.gradle/7.2/gc.properties +0 -0
  11. package/android/.gradle/7.5/checksums/checksums.lock +0 -0
  12. package/android/.gradle/7.5/checksums/md5-checksums.bin +0 -0
  13. package/android/.gradle/7.5/checksums/sha1-checksums.bin +0 -0
  14. package/android/.gradle/7.5/dependencies-accessors/dependencies-accessors.lock +0 -0
  15. package/android/.gradle/7.5/dependencies-accessors/gc.properties +0 -0
  16. package/android/.gradle/7.5/executionHistory/executionHistory.lock +0 -0
  17. package/android/.gradle/7.5/fileChanges/last-build.bin +0 -0
  18. package/android/.gradle/7.5/fileHashes/fileHashes.bin +0 -0
  19. package/android/.gradle/7.5/fileHashes/fileHashes.lock +0 -0
  20. package/android/.gradle/7.5/fileHashes/resourceHashesCache.bin +0 -0
  21. package/android/.gradle/7.5/gc.properties +0 -0
  22. package/android/.gradle/8.5/checksums/checksums.lock +0 -0
  23. package/android/.gradle/8.5/checksums/md5-checksums.bin +0 -0
  24. package/android/.gradle/8.5/checksums/sha1-checksums.bin +0 -0
  25. package/android/.gradle/8.5/dependencies-accessors/dependencies-accessors.lock +0 -0
  26. package/android/.gradle/8.5/dependencies-accessors/gc.properties +0 -0
  27. package/android/.gradle/8.5/fileChanges/last-build.bin +0 -0
  28. package/android/.gradle/8.5/fileHashes/fileHashes.lock +0 -0
  29. package/android/.gradle/8.5/gc.properties +0 -0
  30. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  31. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  32. package/android/.gradle/buildOutputCleanup/outputFiles.bin +0 -0
  33. package/android/.gradle/checksums/checksums.lock +0 -0
  34. package/android/.gradle/checksums/md5-checksums.bin +0 -0
  35. package/android/.gradle/checksums/sha1-checksums.bin +0 -0
  36. package/android/.gradle/config.properties +2 -0
  37. package/android/.gradle/nb-cache/trust/5D9F4D2F872AE83553369BAEF9EF62F30CBE0A19F76FE265082C658DB033E1DA +1 -0
  38. package/android/.gradle/nb-cache/trust/811DB8418F399FDF2AFA5CB6893343C7013E03D6360FA7A8FBFC8B0C8A38EE77 +1 -0
  39. package/android/.gradle/vcs-1/gc.properties +0 -0
  40. package/android/.idea/compiler.xml +6 -0
  41. package/android/.idea/gradle.xml +18 -0
  42. package/android/.idea/migrations.xml +10 -0
  43. package/android/.idea/misc.xml +9 -0
  44. package/android/.idea/other.xml +549 -0
  45. package/android/.idea/vcs.xml +6 -0
  46. package/android/build.gradle +77 -0
  47. package/android/gradle/wrapper/gradle-wrapper.properties +5 -0
  48. package/android/local.properties +8 -0
  49. package/android/src/main/AndroidManifest.xml +4 -0
  50. package/android/src/main/java/com/reactnativecashfreecnsdk/CashfreePgApiModule.java +319 -0
  51. package/android/src/main/java/com/reactnativecashfreecnsdk/CashfreePgApiPackage.java +28 -0
  52. package/ios/CashfreeEmitter.swift +36 -0
  53. package/ios/CashfreeEventEmitter.m +16 -0
  54. package/ios/CashfreeEventEmitter.swift +28 -0
  55. package/ios/CashfreePgApi-Bridging-Header.h +5 -0
  56. package/ios/CashfreePgApi.m +21 -0
  57. package/ios/CashfreePgApi.swift +410 -0
  58. package/ios/CashfreePgApi.xcodeproj/project.pbxproj +293 -0
  59. package/ios/CashfreePgApi.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  60. package/ios/CashfreePgApi.xcodeproj/project.xcworkspace/xcuserdata/nikhil.kushwah.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  61. package/ios/CashfreePgApi.xcodeproj/xcuserdata/nikhil.kushwah.xcuserdatad/xcschemes/xcschememanagement.plist +14 -0
  62. package/lib/commonjs/Card/CFCardComponent.js +287 -0
  63. package/lib/commonjs/Card/CFCardComponent.js.map +1 -0
  64. package/lib/commonjs/Card/index.js +14 -0
  65. package/lib/commonjs/Card/index.js.map +1 -0
  66. package/lib/commonjs/index.js +168 -0
  67. package/lib/commonjs/index.js.map +1 -0
  68. package/lib/module/Card/CFCardComponent.js +279 -0
  69. package/lib/module/Card/CFCardComponent.js.map +1 -0
  70. package/lib/module/Card/index.js +2 -0
  71. package/lib/module/Card/index.js.map +1 -0
  72. package/lib/module/index.js +159 -0
  73. package/lib/module/index.js.map +1 -0
  74. package/lib/typescript/src/Card/CFCardComponent.d.ts +12 -0
  75. package/lib/typescript/src/Card/index.d.ts +1 -0
  76. package/lib/typescript/src/index.d.ts +43 -0
  77. package/package.json +157 -0
  78. package/react-native-cashfree-cn-sdk.podspec +20 -0
  79. package/src/Card/CFCardComponent.js +238 -0
  80. package/src/Card/CFCardComponent.tsx +323 -0
  81. package/src/Card/index.js +1 -0
  82. package/src/Card/index.ts +1 -0
  83. package/src/index.js +167 -0
  84. package/src/index.ts +219 -0
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <Workspace
3
+ version = "1.0">
4
+ <FileRef
5
+ location = "self:">
6
+ </FileRef>
7
+ </Workspace>
@@ -0,0 +1,14 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>SchemeUserState</key>
6
+ <dict>
7
+ <key>CashfreePgApi.xcscheme_^#shared#^_</key>
8
+ <dict>
9
+ <key>orderHint</key>
10
+ <integer>0</integer>
11
+ </dict>
12
+ </dict>
13
+ </dict>
14
+ </plist>
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _cashfreePgApiContract = require("cashfree-pg-api-contract");
10
+ var _index = require("../index");
11
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
14
+ function luhnCheck(cardNumber) {
15
+ if (cardNumber.length === 0) {
16
+ return false;
17
+ }
18
+ cardNumber = cardNumber.replace(/\s/g, ''); // Remove spaces
19
+
20
+ let sum = 0;
21
+ let isAlternate = false;
22
+ for (let i = cardNumber.length - 1; i >= 0; i--) {
23
+ let digit = parseInt(cardNumber[i], 10);
24
+ if (isAlternate) {
25
+ digit *= 2;
26
+ if (digit > 9) {
27
+ digit -= 9;
28
+ }
29
+ }
30
+ sum += digit;
31
+ isAlternate = !isAlternate;
32
+ }
33
+ return sum % 10 === 0;
34
+ }
35
+ function getInputValidationDetails(cardBinResponse) {
36
+ if (!cardBinResponse || !cardBinResponse.scheme) {
37
+ return null;
38
+ }
39
+ let schemeType = cardBinResponse.scheme.toLowerCase();
40
+ let inputValidationDetails;
41
+ switch (schemeType) {
42
+ case 'amex':
43
+ inputValidationDetails = {
44
+ max_input_length: 15,
45
+ cvv_length: 4
46
+ };
47
+ break;
48
+ case 'diners':
49
+ inputValidationDetails = {
50
+ max_input_length: 14,
51
+ cvv_length: 3
52
+ };
53
+ break;
54
+ default:
55
+ // Covers visa, mastercard, rupay, jcb, discover, and unknown schemes
56
+ inputValidationDetails = {
57
+ max_input_length: 16,
58
+ cvv_length: 3
59
+ };
60
+ }
61
+ return inputValidationDetails;
62
+ }
63
+
64
+ /**
65
+ * Fetching Tdr info with card bin data & cfSession object
66
+ * @param session : for payment sessionId & env
67
+ * @param bin : for card number
68
+ */
69
+ async function getTDR(session, bin) {
70
+ const route = `/pg/sdk/js/${session.payment_session_id}/v2/tdr`;
71
+ const body = JSON.stringify({
72
+ code: bin,
73
+ code_type: 'bin'
74
+ });
75
+ return await getInfo(session.environment, route, body);
76
+ }
77
+
78
+ /**
79
+ * Fetching CardBin info with card bin data & cfSession object
80
+ * @param session : for payment sessionId & env
81
+ * @param bin : for card number
82
+ */
83
+ async function getCardBin(session, bin) {
84
+ const route = `/pg/sdk/js/${session.payment_session_id}/cardBin`;
85
+ const body = JSON.stringify({
86
+ card_number: bin
87
+ });
88
+ return await getInfo(session.environment, route, body);
89
+ }
90
+ async function getInfo(env, route, bodyData) {
91
+ let baseUrl = 'https://api.cashfree.com';
92
+ if (env === _cashfreePgApiContract.CFEnvironment.SANDBOX) {
93
+ baseUrl = 'https://sandbox.cashfree.com';
94
+ }
95
+ const url = baseUrl + route;
96
+ try {
97
+ const response = await fetch(url, {
98
+ method: 'POST',
99
+ headers: {
100
+ 'Content-Type': 'application/json'
101
+ },
102
+ body: bodyData
103
+ });
104
+ if (!response.ok) {
105
+ return null;
106
+ }
107
+ return await response.json();
108
+ } catch (error) {
109
+ return null;
110
+ }
111
+ }
112
+ const CardInput = /*#__PURE__*/(0, _react.forwardRef)(({
113
+ cfSession,
114
+ cardListener,
115
+ style,
116
+ ...props
117
+ }, ref) => {
118
+ const [inputNumber, setInputNumber] = _react.default.useState('');
119
+ const inputNumberRef = _react.default.useRef('');
120
+ const sessionRef = _react.default.useRef(cfSession);
121
+ _react.default.useImperativeHandle(ref, () => ({
122
+ doPayment,
123
+ doPaymentWithPaymentSessionId
124
+ }));
125
+ const tdrJsonRef = _react.default.useRef(null);
126
+ const cardBinJsonRef = _react.default.useRef(null);
127
+ const firstEightDigitsRef = _react.default.useRef('');
128
+ const handleChange = _react.default.useCallback(async cardNumber => {
129
+ let completeResponse = {};
130
+ const textWithoutSpaces = cardNumber.replaceAll(' ', '');
131
+ if (textWithoutSpaces.length === 0) setInputNumber('');
132
+ let formattedText = '';
133
+ /**
134
+ * Code to format card input number & set to input box
135
+ */
136
+ for (let i = 0; i < textWithoutSpaces.length; i += 4) {
137
+ let end = i + 4;
138
+ if (end > textWithoutSpaces.length) {
139
+ end = textWithoutSpaces.length;
140
+ }
141
+ formattedText += textWithoutSpaces.substring(i, end);
142
+ if (end !== textWithoutSpaces.length) {
143
+ formattedText += ' ';
144
+ }
145
+ inputNumberRef.current = formattedText;
146
+ setInputNumber(prev => prev === formattedText ? prev : formattedText);
147
+ }
148
+ let tdrResponse = null;
149
+ let cardBinResponse = null;
150
+
151
+ /**
152
+ * Fetch Tdr & CardBin data & set to local variable
153
+ */
154
+ async function fetchDataAndSet() {
155
+ await getTDR(cfSession, textWithoutSpaces).then(response => {
156
+ tdrResponse = response;
157
+ firstEightDigitsRef.current = textWithoutSpaces.substring(0, 8);
158
+ }).catch(() => {
159
+ tdrResponse = null;
160
+ });
161
+ await getCardBin(cfSession, textWithoutSpaces).then(response => {
162
+ cardBinResponse = response;
163
+ firstEightDigitsRef.current = textWithoutSpaces.substring(0, 8);
164
+ }).catch(() => {
165
+ cardBinResponse = null;
166
+ });
167
+ if (tdrResponse) {
168
+ tdrJsonRef.current = tdrResponse;
169
+ completeResponse.tdr_info = tdrJsonRef.current;
170
+ }
171
+ if (cardBinResponse) {
172
+ cardBinJsonRef.current = cardBinResponse;
173
+ completeResponse.card_bin_info = cardBinJsonRef.current;
174
+ completeResponse.input_validation = getInputValidationDetails(cardBinJsonRef.current);
175
+ }
176
+ }
177
+ if (textWithoutSpaces.length === 8) {
178
+ await fetchDataAndSet();
179
+ } else if (textWithoutSpaces.length > 8) {
180
+ if (firstEightDigitsRef.current === textWithoutSpaces.substring(0, 8)) {
181
+ completeResponse.tdr_info = tdrJsonRef.current;
182
+ completeResponse.card_bin_info = cardBinJsonRef.current;
183
+ completeResponse.input_validation = getInputValidationDetails(cardBinJsonRef.current);
184
+ } else {
185
+ tdrJsonRef.current = null;
186
+ cardBinJsonRef.current = null;
187
+ await fetchDataAndSet();
188
+ }
189
+ }
190
+ if (textWithoutSpaces.length < 8) {
191
+ tdrJsonRef.current = null;
192
+ cardBinJsonRef.current = null;
193
+ firstEightDigitsRef.current = '';
194
+ }
195
+ if (cardBinJsonRef.current !== null) {
196
+ completeResponse.card_network = cardBinJsonRef.current.scheme;
197
+ }
198
+ let luhnStatus = luhnCheck(textWithoutSpaces);
199
+ if (luhnStatus) {
200
+ completeResponse.luhn_check_info = 'SUCCESS';
201
+ if (textWithoutSpaces && textWithoutSpaces.length > 4) {
202
+ completeResponse.last_four_digit = textWithoutSpaces.substring(textWithoutSpaces.length - 4);
203
+ }
204
+ } else {
205
+ completeResponse.luhn_check_info = 'FAIL';
206
+ }
207
+ completeResponse.card_length = textWithoutSpaces.length;
208
+ return cardListener(JSON.stringify(completeResponse));
209
+ }, [cfSession, cardListener]);
210
+ const doPayment = cardInfo => {
211
+ try {
212
+ let cfCardNumber = inputNumberRef.current;
213
+ cardInfo.cardNumber = cfCardNumber.replaceAll(' ', '');
214
+ const cardPayment = new _cashfreePgApiContract.CFCardPayment(sessionRef.current, cardInfo);
215
+ _index.CFPaymentGatewayService.makePayment(cardPayment, "https://65da-163-116-214-55.ngrok-free.app");
216
+ } catch (e) {
217
+ console.log(e.message);
218
+ }
219
+ };
220
+ const doPaymentWithPaymentSessionId = (cardInfo, session) => {
221
+ try {
222
+ sessionRef.current = session;
223
+ doPayment(cardInfo);
224
+ } catch (e) {
225
+ console.log(e.message);
226
+ }
227
+ };
228
+ const handleSubmitEditingEvent = event => {
229
+ const newEvent = {
230
+ ...event
231
+ };
232
+ delete newEvent.nativeEvent.text;
233
+ if (onSubmitEditing) {
234
+ onSubmitEditing(newEvent);
235
+ }
236
+ };
237
+ const handleEndEditingEvent = event => {
238
+ const newEvent = {
239
+ ...event
240
+ };
241
+ delete newEvent.nativeEvent.text;
242
+ if (onEndEditing) {
243
+ onEndEditing(newEvent);
244
+ }
245
+ };
246
+ const handleFocusEvent = event => {
247
+ const newEvent = {
248
+ ...event
249
+ };
250
+ delete newEvent.nativeEvent.text;
251
+ if (onFocus) {
252
+ onFocus(newEvent);
253
+ }
254
+ };
255
+ const handleBlurEvent = event => {
256
+ const newEvent = {
257
+ ...event
258
+ };
259
+ delete newEvent.nativeEvent.text;
260
+ if (onBlur) {
261
+ onBlur(newEvent);
262
+ }
263
+ };
264
+ const InputComponent = _reactNative.TextInput;
265
+ const {
266
+ onChangeText,
267
+ onChange,
268
+ onSubmitEditing,
269
+ onEndEditing,
270
+ onFocus,
271
+ onBlur,
272
+ ...otherProps
273
+ } = props;
274
+ return /*#__PURE__*/_react.default.createElement(InputComponent, _extends({
275
+ keyboardType: "numeric",
276
+ inputMode: 'numeric',
277
+ value: inputNumber,
278
+ onChangeText: handleChange,
279
+ onSubmitEditing: handleSubmitEditingEvent,
280
+ onEndEditing: handleEndEditingEvent,
281
+ onFocus: handleFocusEvent,
282
+ onBlur: handleBlurEvent,
283
+ style: style
284
+ }, otherProps));
285
+ });
286
+ var _default = exports.default = CardInput;
287
+ //# sourceMappingURL=CFCardComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_react","_interopRequireWildcard","_cashfreePgApiContract","_index","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","luhnCheck","cardNumber","replace","sum","isAlternate","digit","parseInt","getInputValidationDetails","cardBinResponse","scheme","schemeType","toLowerCase","inputValidationDetails","max_input_length","cvv_length","getTDR","session","bin","route","payment_session_id","body","JSON","stringify","code","code_type","getInfo","environment","getCardBin","card_number","env","bodyData","baseUrl","CFEnvironment","SANDBOX","url","response","fetch","method","headers","ok","json","error","CardInput","forwardRef","cfSession","cardListener","style","props","ref","inputNumber","setInputNumber","React","useState","inputNumberRef","useRef","sessionRef","useImperativeHandle","doPayment","doPaymentWithPaymentSessionId","tdrJsonRef","cardBinJsonRef","firstEightDigitsRef","handleChange","useCallback","completeResponse","textWithoutSpaces","replaceAll","formattedText","end","substring","current","prev","tdrResponse","fetchDataAndSet","then","catch","tdr_info","card_bin_info","input_validation","card_network","luhnStatus","luhn_check_info","last_four_digit","card_length","cardInfo","cfCardNumber","cardPayment","CFCardPayment","CFPaymentGatewayService","makePayment","console","log","message","handleSubmitEditingEvent","event","newEvent","nativeEvent","text","onSubmitEditing","handleEndEditingEvent","onEndEditing","handleFocusEvent","onFocus","handleBlurEvent","onBlur","InputComponent","TextInput","onChangeText","onChange","otherProps","createElement","keyboardType","inputMode","value","_default","exports"],"sources":["CFCardComponent.tsx"],"sourcesContent":["import { TextInput, TextInputProps } from 'react-native';\nimport React, { forwardRef } from 'react';\nimport {\n CFCardPayment,\n CFEnvironment,\n type CFSession,\n ElementCard,\n} from 'cashfree-pg-api-contract';\nimport { CFPaymentGatewayService } from '../index';\n\nfunction luhnCheck(cardNumber: string): boolean {\n if (cardNumber.length === 0) {\n return false;\n }\n\n cardNumber = cardNumber.replace(/\\s/g, ''); // Remove spaces\n\n let sum = 0;\n let isAlternate = false;\n\n for (let i = cardNumber.length - 1; i >= 0; i--) {\n let digit = parseInt(cardNumber[i], 10);\n\n if (isAlternate) {\n digit *= 2;\n if (digit > 9) {\n digit -= 9;\n }\n }\n\n sum += digit;\n isAlternate = !isAlternate;\n }\n\n return sum % 10 === 0;\n}\n\nfunction getInputValidationDetails(cardBinResponse: any) {\n if (!cardBinResponse || !cardBinResponse.scheme) {\n return null;\n }\n\n let schemeType = cardBinResponse.scheme.toLowerCase();\n let inputValidationDetails: { max_input_length: number; cvv_length: number };\n switch (schemeType) {\n case 'amex':\n inputValidationDetails = { max_input_length: 15, cvv_length: 4 };\n break;\n case 'diners':\n inputValidationDetails = { max_input_length: 14, cvv_length: 3 };\n break;\n default: // Covers visa, mastercard, rupay, jcb, discover, and unknown schemes\n inputValidationDetails = { max_input_length: 16, cvv_length: 3 };\n }\n return inputValidationDetails;\n}\n\n/**\n * Fetching Tdr info with card bin data & cfSession object\n * @param session : for payment sessionId & env\n * @param bin : for card number\n */\nasync function getTDR(session: CFSession, bin: string) {\n const route: string = `/pg/sdk/js/${session.payment_session_id}/v2/tdr`;\n const body: string = JSON.stringify({ code: bin, code_type: 'bin' });\n return await getInfo(session.environment, route, body);\n}\n\n/**\n * Fetching CardBin info with card bin data & cfSession object\n * @param session : for payment sessionId & env\n * @param bin : for card number\n */\nasync function getCardBin(session: CFSession, bin: string) {\n const route: string = `/pg/sdk/js/${session.payment_session_id}/cardBin`;\n const body: string = JSON.stringify({ card_number: bin });\n return await getInfo(session.environment, route, body);\n}\n\nasync function getInfo(env: string, route: string, bodyData: string) {\n let baseUrl = 'https://api.cashfree.com';\n if (env === CFEnvironment.SANDBOX) {\n baseUrl = 'https://sandbox.cashfree.com';\n }\n const url = baseUrl + route;\n try {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: bodyData,\n });\n\n if (!response.ok) {\n return null;\n }\n return await response.json();\n } catch (error) {\n return null;\n }\n}\n\nexport type CardPaymentHandle = {\n doPayment: (cardInfo: ElementCard) => void;\n doPaymentWithPaymentSessionId: (\n cardInfo: ElementCard,\n cfSession: CFSession\n ) => void;\n};\n\nexport type CardInputProps = {\n cfSession: CFSession;\n cardListener: (response: string) => void;\n} & TextInputProps;\n\nconst CardInput: any = forwardRef<CardPaymentHandle, CardInputProps>(\n ({ cfSession, cardListener, style, ...props }: CardInputProps, ref) => {\n const [inputNumber, setInputNumber] = React.useState('');\n const inputNumberRef = React.useRef('');\n const sessionRef = React.useRef(cfSession);\n React.useImperativeHandle(ref, () => ({\n doPayment,\n doPaymentWithPaymentSessionId,\n }));\n\n const tdrJsonRef = React.useRef<any>(null);\n const cardBinJsonRef = React.useRef<any>(null);\n const firstEightDigitsRef = React.useRef<string>('');\n\n const handleChange = React.useCallback(\n async (cardNumber: string) => {\n let completeResponse: any = {};\n const textWithoutSpaces: string = cardNumber.replaceAll(' ', '');\n if (textWithoutSpaces.length === 0) setInputNumber('');\n\n let formattedText: string = '';\n /**\n * Code to format card input number & set to input box\n */\n for (let i: number = 0; i < textWithoutSpaces.length; i += 4) {\n let end: number = i + 4;\n if (end > textWithoutSpaces.length) {\n end = textWithoutSpaces.length;\n }\n formattedText += textWithoutSpaces.substring(i, end);\n if (end !== textWithoutSpaces.length) {\n formattedText += ' ';\n }\n inputNumberRef.current = formattedText;\n setInputNumber((prev) =>\n prev === formattedText ? prev : formattedText\n );\n }\n\n let tdrResponse: any = null;\n let cardBinResponse: any = null;\n\n /**\n * Fetch Tdr & CardBin data & set to local variable\n */\n async function fetchDataAndSet() {\n await getTDR(cfSession, textWithoutSpaces)\n .then((response: string) => {\n tdrResponse = response;\n firstEightDigitsRef.current = textWithoutSpaces.substring(0, 8);\n })\n .catch(() => {\n tdrResponse = null;\n });\n\n await getCardBin(cfSession, textWithoutSpaces)\n .then((response: string) => {\n cardBinResponse = response;\n firstEightDigitsRef.current = textWithoutSpaces.substring(0, 8);\n })\n .catch(() => {\n cardBinResponse = null;\n });\n\n if (tdrResponse) {\n tdrJsonRef.current = tdrResponse;\n completeResponse.tdr_info = tdrJsonRef.current;\n }\n\n if (cardBinResponse) {\n cardBinJsonRef.current = cardBinResponse;\n completeResponse.card_bin_info = cardBinJsonRef.current;\n completeResponse.input_validation = getInputValidationDetails(\n cardBinJsonRef.current\n );\n }\n }\n\n if (textWithoutSpaces.length === 8) {\n await fetchDataAndSet();\n } else if (textWithoutSpaces.length > 8) {\n if (\n firstEightDigitsRef.current === textWithoutSpaces.substring(0, 8)\n ) {\n completeResponse.tdr_info = tdrJsonRef.current;\n completeResponse.card_bin_info = cardBinJsonRef.current;\n completeResponse.input_validation = getInputValidationDetails(\n cardBinJsonRef.current\n );\n } else {\n tdrJsonRef.current = null;\n cardBinJsonRef.current = null;\n await fetchDataAndSet();\n }\n }\n\n if (textWithoutSpaces.length < 8) {\n tdrJsonRef.current = null;\n cardBinJsonRef.current = null;\n firstEightDigitsRef.current = '';\n }\n\n if (cardBinJsonRef.current !== null) {\n completeResponse.card_network = cardBinJsonRef.current.scheme;\n }\n let luhnStatus = luhnCheck(textWithoutSpaces);\n if (luhnStatus) {\n completeResponse.luhn_check_info = 'SUCCESS';\n if (textWithoutSpaces && textWithoutSpaces.length > 4) {\n completeResponse.last_four_digit = textWithoutSpaces.substring(\n textWithoutSpaces.length - 4\n );\n }\n } else {\n completeResponse.luhn_check_info = 'FAIL';\n }\n completeResponse.card_length = textWithoutSpaces.length;\n\n return cardListener(JSON.stringify(completeResponse));\n },\n [cfSession, cardListener]\n );\n\n const doPayment = (cardInfo: ElementCard) => {\n try {\n let cfCardNumber = inputNumberRef.current;\n cardInfo.cardNumber = cfCardNumber.replaceAll(' ', '');\n const cardPayment = new CFCardPayment(sessionRef.current, cardInfo);\n CFPaymentGatewayService.makePayment(cardPayment,\"https://65da-163-116-214-55.ngrok-free.app\");\n } catch (e: any) {\n console.log(e.message);\n }\n };\n\n const doPaymentWithPaymentSessionId = (\n cardInfo: ElementCard,\n session: CFSession\n ) => {\n try {\n sessionRef.current = session;\n doPayment(cardInfo);\n } catch (e: any) {\n console.log(e.message);\n }\n };\n\n const handleSubmitEditingEvent = (event: any) => {\n const newEvent = { ...event };\n delete newEvent.nativeEvent.text;\n if (onSubmitEditing) {\n onSubmitEditing(newEvent);\n }\n };\n\n const handleEndEditingEvent = (event: any) => {\n const newEvent = { ...event };\n delete newEvent.nativeEvent.text;\n if (onEndEditing) {\n onEndEditing(newEvent);\n }\n };\n\n const handleFocusEvent = (event: any) => {\n const newEvent = { ...event };\n delete newEvent.nativeEvent.text;\n if (onFocus) {\n onFocus(newEvent);\n }\n };\n\n const handleBlurEvent = (event: any) => {\n const newEvent = { ...event };\n delete newEvent.nativeEvent.text;\n if (onBlur) {\n onBlur(newEvent);\n }\n };\n\n const InputComponent: any = TextInput;\n const {\n onChangeText,\n onChange,\n onSubmitEditing,\n onEndEditing,\n onFocus,\n onBlur,\n ...otherProps\n } = props;\n\n return (\n <InputComponent\n keyboardType=\"numeric\"\n inputMode={'numeric'}\n value={inputNumber}\n onChangeText={handleChange}\n onSubmitEditing={handleSubmitEditingEvent}\n onEndEditing={handleEndEditingEvent}\n onFocus={handleFocusEvent}\n onBlur={handleBlurEvent}\n style={style}\n {...otherProps}\n />\n );\n }\n);\n\nexport default CardInput;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _CFCardComponent.default;
10
+ }
11
+ });
12
+ var _CFCardComponent = _interopRequireDefault(require("./CFCardComponent"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_CFCardComponent","_interopRequireDefault","require","e","__esModule","default"],"sources":["index.js"],"sourcesContent":["export { default } from './CFCardComponent';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA4C,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CFPaymentGatewayService = exports.CFErrorResponse = exports.CFCard = void 0;
7
+ var _reactNative = require("react-native");
8
+ var _package = require("../package.json");
9
+ var _cashfreePgApiContract = require("cashfree-pg-api-contract");
10
+ var _CFCardComponent = _interopRequireDefault(require("./Card/CFCardComponent"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
14
+ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
+ const LINKING_ERROR = `The package 'react-native-cashfree-cn-api' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
16
+ ios: '- You have run \'pod install\'\n',
17
+ default: ''
18
+ }) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo managed workflow\n';
19
+ const CashfreePgApi = _reactNative.NativeModules.CashfreePgApi ? _reactNative.NativeModules.CashfreePgApi : new Proxy({}, {
20
+ get() {
21
+ throw new Error(LINKING_ERROR);
22
+ }
23
+ });
24
+ class CFPaymentGateway {
25
+ constructor() {
26
+ _defineProperty(this, "emitter", void 0);
27
+ _defineProperty(this, "successSubscription", null);
28
+ _defineProperty(this, "failureSubscription", null);
29
+ _defineProperty(this, "eventSubscription", null);
30
+ _defineProperty(this, "upiAppsSubscription", null);
31
+ this.emitter = _reactNative.Platform.OS === 'ios' ? new _reactNative.NativeEventEmitter(_reactNative.NativeModules.CashfreeEventEmitter) : _reactNative.NativeAppEventEmitter;
32
+ }
33
+ doPayment(checkoutPayment, baseUrl) {
34
+ checkoutPayment.version = _package.version;
35
+ CashfreePgApi.doPayment(JSON.stringify(checkoutPayment), baseUrl);
36
+ }
37
+ doUPIPayment(checkoutPayment, baseUrl) {
38
+ checkoutPayment.version = _package.version;
39
+ CashfreePgApi.doUPIPayment(JSON.stringify(checkoutPayment), baseUrl);
40
+ }
41
+ doWebPayment(cfSession, baseUrl) {
42
+ CashfreePgApi.doWebPayment(JSON.stringify(cfSession), baseUrl);
43
+ }
44
+
45
+ /**
46
+ * @deprecated : Instead call makePayment
47
+ */
48
+ doCardPayment(cardPayment, baseUrl) {
49
+ this.makePayment(cardPayment, baseUrl);
50
+ }
51
+ async getInstalledUpiApps() {
52
+ return new Promise((resolve, reject) => {
53
+ if (_reactNative.Platform.OS === 'ios') {
54
+ let fetchUpiList = apps => {
55
+ console.log(JSON.stringify(apps));
56
+ if (apps) {
57
+ resolve(apps);
58
+ } else {
59
+ reject('No UPI apps found');
60
+ }
61
+ };
62
+ this.upiAppsSubscription = this.emitter.addListener('cfUpiApps', fetchUpiList);
63
+ CashfreePgApi.getInstalledUpiApps();
64
+ } else {
65
+ CashfreePgApi.getInstalledUpiApps(apps => {
66
+ if (apps) {
67
+ resolve(apps);
68
+ } else {
69
+ reject('No UPI apps found');
70
+ }
71
+ });
72
+ }
73
+ });
74
+ }
75
+ makePayment(cfPayment, baseUrl) {
76
+ cfPayment.version = _package.version;
77
+ const paymentData = JSON.stringify(cfPayment);
78
+ if (cfPayment instanceof _cashfreePgApiContract.CFUPIPayment) {
79
+ CashfreePgApi.doElementUPIPayment(paymentData, baseUrl);
80
+ } else if (cfPayment instanceof _cashfreePgApiContract.CFCardPayment) {
81
+ CashfreePgApi.doCardPayment(paymentData, baseUrl);
82
+ } else {
83
+ console.log('makePayment::==> Wrong payment object');
84
+ }
85
+ }
86
+ setEventSubscriber(cfEventCallback) {
87
+ let eventFunction = event => {
88
+ console.log(JSON.stringify(event));
89
+ let data = JSON.parse(event);
90
+ cfEventCallback.onReceivedEvent(data.eventName, data.meta);
91
+ };
92
+ this.eventSubscription = this.emitter.addListener('cfEvent', eventFunction);
93
+ CashfreePgApi.setEventSubscriber();
94
+ }
95
+ removeEventSubscriber() {
96
+ if (this.eventSubscription !== undefined && this.eventSubscription !== null) {
97
+ this.eventSubscription.remove();
98
+ this.eventSubscription = null;
99
+ }
100
+ CashfreePgApi.removeEventSubscriber();
101
+ }
102
+ setCallback(cfCallback) {
103
+ // this.cfCallback = cfCallback;
104
+ let successFunction = orderID => {
105
+ console.log('response is : ' + JSON.stringify(orderID));
106
+ cfCallback.onVerify(orderID);
107
+ };
108
+ let failureFunction = error => {
109
+ console.log('reason: ' + JSON.stringify(error));
110
+ const response = new CFErrorResponse();
111
+ // @ts-ignore
112
+ const message = JSON.parse(error);
113
+ response.fromJSON(message.error);
114
+ // @ts-ignore
115
+ cfCallback.onError(response, message.orderID);
116
+ };
117
+ this.successSubscription = this.emitter.addListener('cfSuccess', successFunction);
118
+ this.failureSubscription = this.emitter.addListener('cfFailure', failureFunction);
119
+ CashfreePgApi.setCallback();
120
+ }
121
+ removeCallback() {
122
+ if (this.successSubscription !== undefined && this.successSubscription !== null) {
123
+ this.successSubscription.remove();
124
+ this.successSubscription = null;
125
+ }
126
+ if (this.failureSubscription !== undefined && this.failureSubscription !== null) {
127
+ this.failureSubscription.remove();
128
+ this.failureSubscription = null;
129
+ }
130
+ if (this.upiAppsSubscription !== undefined && this.upiAppsSubscription !== null) {
131
+ this.upiAppsSubscription.remove();
132
+ this.upiAppsSubscription = null;
133
+ }
134
+ }
135
+ }
136
+ class CFErrorResponse {
137
+ constructor() {
138
+ _defineProperty(this, "status", 'FAILED');
139
+ _defineProperty(this, "message", 'payment has failed');
140
+ _defineProperty(this, "code", 'payment_failed');
141
+ _defineProperty(this, "type", 'request_failed');
142
+ }
143
+ fromJSON(errorString) {
144
+ console.log('errorString :' + errorString);
145
+ const object = JSON.parse(errorString);
146
+ console.log('errorStringObject :' + object);
147
+ this.status = object.status;
148
+ this.message = object.message;
149
+ this.code = object.code;
150
+ this.type = object.type;
151
+ }
152
+ getStatus() {
153
+ return this.status;
154
+ }
155
+ getMessage() {
156
+ return this.message;
157
+ }
158
+ getCode() {
159
+ return this.code;
160
+ }
161
+ getType() {
162
+ return this.type;
163
+ }
164
+ }
165
+ exports.CFErrorResponse = CFErrorResponse;
166
+ const CFCard = exports.CFCard = _CFCardComponent.default;
167
+ const CFPaymentGatewayService = exports.CFPaymentGatewayService = new CFPaymentGateway();
168
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_package","_cashfreePgApiContract","_CFCardComponent","_interopRequireDefault","e","__esModule","default","_defineProperty","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","i","_toPrimitive","Symbol","toPrimitive","call","TypeError","String","Number","LINKING_ERROR","Platform","select","ios","CashfreePgApi","NativeModules","Proxy","get","Error","CFPaymentGateway","constructor","emitter","OS","NativeEventEmitter","CashfreeEventEmitter","NativeAppEventEmitter","doPayment","checkoutPayment","baseUrl","version","JSON","stringify","doUPIPayment","doWebPayment","cfSession","doCardPayment","cardPayment","makePayment","getInstalledUpiApps","Promise","resolve","reject","fetchUpiList","apps","console","log","upiAppsSubscription","addListener","cfPayment","paymentData","CFUPIPayment","doElementUPIPayment","CFCardPayment","setEventSubscriber","cfEventCallback","eventFunction","event","data","parse","onReceivedEvent","eventName","meta","eventSubscription","removeEventSubscriber","undefined","remove","setCallback","cfCallback","successFunction","orderID","onVerify","failureFunction","error","response","CFErrorResponse","message","fromJSON","onError","successSubscription","failureSubscription","removeCallback","errorString","object","status","code","type","getStatus","getMessage","getCode","getType","exports","CFCard","CFCardComponent","CFPaymentGatewayService"],"sources":["index.ts"],"sourcesContent":["import {\n EmitterSubscription,\n EventEmitter,\n NativeAppEventEmitter,\n NativeEventEmitter,\n NativeModules,\n Platform,\n} from 'react-native';\nimport { version } from '../package.json';\nimport { type CheckoutPayment, type CFSession, CFUPIPayment, CFCardPayment } from 'cashfree-pg-api-contract';\nimport CFCardComponent from './Card/CFCardComponent';\n\nconst LINKING_ERROR =\n `The package 'react-native-cashfree-cn-api' doesn't seem to be linked. Make sure: \\n\\n` +\n Platform.select({ ios: '- You have run \\'pod install\\'\\n', default: '' }) +\n '- You rebuilt the app after installing the package\\n' +\n '- You are not using Expo managed workflow\\n';\n\nconst CashfreePgApi = NativeModules.CashfreePgApi\n ? NativeModules.CashfreePgApi\n : new Proxy(\n {},\n {\n get() {\n throw new Error(LINKING_ERROR);\n },\n },\n );\n\nclass CFPaymentGateway {\n private emitter: EventEmitter;\n private successSubscription: EmitterSubscription | null = null;\n private failureSubscription: EmitterSubscription | null = null;\n private eventSubscription: EmitterSubscription | null = null;\n private upiAppsSubscription: EmitterSubscription | null = null;\n\n constructor() {\n this.emitter =\n Platform.OS === 'ios'\n ? new NativeEventEmitter(NativeModules.CashfreeEventEmitter)\n : NativeAppEventEmitter;\n }\n\n doPayment(checkoutPayment: CheckoutPayment,baseUrl: String) {\n checkoutPayment.version = version;\n CashfreePgApi.doPayment(JSON.stringify(checkoutPayment),baseUrl);\n }\n\n doUPIPayment(checkoutPayment: CheckoutPayment,baseUrl: String) {\n checkoutPayment.version = version;\n CashfreePgApi.doUPIPayment(JSON.stringify(checkoutPayment),baseUrl);\n }\n\n doWebPayment(cfSession: CFSession,baseUrl: String) {\n CashfreePgApi.doWebPayment(JSON.stringify(cfSession),baseUrl);\n }\n\n /**\n * @deprecated : Instead call makePayment\n */\n doCardPayment(cardPayment: CheckoutPayment,baseUrl: String) {\n this.makePayment(cardPayment,baseUrl);\n }\n\n async getInstalledUpiApps() {\n return new Promise((resolve, reject) => {\n if(Platform.OS === 'ios'){\n let fetchUpiList = (apps: string) => {\n console.log(JSON.stringify(apps));\n if (apps) {\n resolve(apps);\n } else {\n reject('No UPI apps found');\n }\n };\n this.upiAppsSubscription = this.emitter.addListener('cfUpiApps', fetchUpiList);\n CashfreePgApi.getInstalledUpiApps()\n }\n else {\n CashfreePgApi.getInstalledUpiApps((apps: string) => {\n if (apps) {\n resolve(apps);\n } else {\n reject('No UPI apps found');\n }\n });\n }\n });\n }\n\n makePayment(cfPayment: CheckoutPayment,baseUrl: String) {\n cfPayment.version = version;\n const paymentData = JSON.stringify(cfPayment);\n if (cfPayment instanceof CFUPIPayment) {\n CashfreePgApi.doElementUPIPayment(paymentData,baseUrl);\n } else if (cfPayment instanceof CFCardPayment) {\n CashfreePgApi.doCardPayment(paymentData,baseUrl);\n } else {\n console.log('makePayment::==> Wrong payment object');\n }\n }\n\n setEventSubscriber(cfEventCallback: CFEventCallback) {\n let eventFunction = (event: string) => {\n console.log(JSON.stringify(event));\n let data = JSON.parse(event);\n cfEventCallback.onReceivedEvent(data.eventName, data.meta);\n };\n this.eventSubscription = this.emitter.addListener('cfEvent', eventFunction);\n CashfreePgApi.setEventSubscriber();\n }\n\n removeEventSubscriber() {\n if (\n this.eventSubscription !== undefined &&\n this.eventSubscription !== null\n ) {\n this.eventSubscription.remove();\n this.eventSubscription = null;\n }\n CashfreePgApi.removeEventSubscriber();\n }\n\n setCallback(cfCallback: CFCallback) {\n // this.cfCallback = cfCallback;\n let successFunction = (orderID: string) => {\n console.log('response is : ' + JSON.stringify(orderID));\n cfCallback.onVerify(orderID);\n };\n let failureFunction = (error: string) => {\n console.log('reason: ' + JSON.stringify(error));\n const response = new CFErrorResponse();\n // @ts-ignore\n const message = JSON.parse(error);\n response.fromJSON(message.error);\n // @ts-ignore\n cfCallback.onError(response, message.orderID);\n };\n this.successSubscription = this.emitter.addListener(\n 'cfSuccess',\n successFunction,\n );\n this.failureSubscription = this.emitter.addListener(\n 'cfFailure',\n failureFunction,\n );\n CashfreePgApi.setCallback();\n }\n\n removeCallback() {\n if (\n this.successSubscription !== undefined &&\n this.successSubscription !== null\n ) {\n this.successSubscription.remove();\n this.successSubscription = null;\n }\n if (\n this.failureSubscription !== undefined &&\n this.failureSubscription !== null\n ) {\n this.failureSubscription.remove();\n this.failureSubscription = null;\n }\n if (\n this.upiAppsSubscription !== undefined &&\n this.upiAppsSubscription !== null\n ) {\n this.upiAppsSubscription.remove();\n this.upiAppsSubscription = null;\n }\n }\n}\n\nexport interface CFCallback {\n onVerify(orderID: string): void;\n\n onError(error: CFErrorResponse, orderID: string): void;\n}\n\nexport interface CFEventCallback {\n onReceivedEvent(eventName: string, map: Map<string, string>): void;\n}\n\nexport class CFErrorResponse {\n private status: string = 'FAILED';\n private message: string = 'payment has failed';\n private code: string = 'payment_failed';\n private type: string = 'request_failed';\n\n fromJSON(errorString: string) {\n console.log('errorString :' + errorString);\n const object = JSON.parse(errorString);\n console.log('errorStringObject :' + object);\n this.status = object.status;\n this.message = object.message;\n this.code = object.code;\n this.type = object.type;\n }\n\n getStatus(): string {\n return this.status;\n }\n\n getMessage(): string {\n return this.message;\n }\n\n getCode(): string {\n return this.code;\n }\n\n getType(): string {\n return this.type;\n }\n}\n\nexport const CFCard = CFCardComponent\nexport const CFPaymentGatewayService = new CFPaymentGateway();\n"],"mappings":"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","ignoreList":[]}