@netappsng/react-native-pay 0.3.0 → 0.3.1
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.
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/netappspay/NetappspayModule.kt +1 -1
- package/ios/NetappspayBridge.swift +1 -1
- package/lib/module/index.js +10 -9
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +10 -9
package/android/build.gradle
CHANGED
|
@@ -162,7 +162,7 @@ class NetappspayModule(reactContext: ReactApplicationContext) :
|
|
|
162
162
|
"transfer", "bank_transfer" -> PaymentChannel.TRANSFER
|
|
163
163
|
"ussd", "ussd_code" -> PaymentChannel.USSD
|
|
164
164
|
"payattitude", "ussd_push", "pay_attitude" -> PaymentChannel.PAYATTITUDE
|
|
165
|
-
"moniflow", "netapps_marketplace", "marketplace" -> PaymentChannel.MONIFLOW
|
|
165
|
+
"moniflow", "moni_flow", "netapps_marketplace", "marketplace" -> PaymentChannel.MONIFLOW
|
|
166
166
|
"tap_to_pay", "nfc" -> PaymentChannel.TAP_TO_PAY
|
|
167
167
|
else -> null
|
|
168
168
|
}
|
|
@@ -175,7 +175,7 @@ import NetAppsPaySDK
|
|
|
175
175
|
case "transfer", "bank_transfer": return .transfer
|
|
176
176
|
case "ussd", "ussd_code": return .ussd
|
|
177
177
|
case "payattitude", "ussd_push", "pay_attitude": return .payattitude
|
|
178
|
-
case "moniflow", "netapps_marketplace", "marketplace": return .moniflow
|
|
178
|
+
case "moniflow", "moni_flow", "netapps_marketplace", "marketplace": return .moniflow
|
|
179
179
|
default: return nil
|
|
180
180
|
}
|
|
181
181
|
}
|
package/lib/module/index.js
CHANGED
|
@@ -28,7 +28,7 @@ const emitter = new NativeEventEmitter(NativeNetappspay);
|
|
|
28
28
|
* amount: 150000,
|
|
29
29
|
* currency: 'NGN',
|
|
30
30
|
* email: 'customer@email.com',
|
|
31
|
-
* fullName: '
|
|
31
|
+
* fullName: 'Jane Smith',
|
|
32
32
|
* narration: 'Order #1234',
|
|
33
33
|
* paymentChannels: ['card', 'transfer', 'ussd'],
|
|
34
34
|
* defaultChannel: 'card',
|
|
@@ -42,14 +42,14 @@ const emitter = new NativeEventEmitter(NativeNetappspay);
|
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
44
|
function validateConfig(config) {
|
|
45
|
-
if (!config.publicKey?.trim()) return 'publicKey is required';
|
|
46
|
-
if (!config.email?.trim()) return 'email is required';
|
|
47
|
-
if (!config.fullName?.trim()) return 'fullName is required';
|
|
48
|
-
if (!config.narration?.trim()) return 'narration is required
|
|
49
|
-
if (typeof config.amount !== 'number' || config.amount <= 0) return 'amount must be a positive number
|
|
50
|
-
if (!config.currency) return 'currency is required';
|
|
51
|
-
if (!config.paymentChannels?.length) return 'paymentChannels must
|
|
52
|
-
if (!config.defaultChannel) return 'defaultChannel is required';
|
|
45
|
+
if (!config.publicKey?.trim()) return "'publicKey' is required. Provide your merchant public key (e.g. 'pk_test_xxx').";
|
|
46
|
+
if (!config.email?.trim()) return "'email' is required. Provide the customer's email address.";
|
|
47
|
+
if (!config.fullName?.trim()) return "'fullName' is required. Provide the customer's full name (e.g. first and last name).";
|
|
48
|
+
if (!config.narration?.trim()) return "'narration' is required. Provide a short description for this payment.";
|
|
49
|
+
if (typeof config.amount !== 'number' || config.amount <= 0) return "'amount' must be a positive number in minor units (e.g. 150000 for ₦1,500.00).";
|
|
50
|
+
if (!config.currency) return "'currency' is required (e.g. 'NGN').";
|
|
51
|
+
if (!config.paymentChannels?.length) return "'paymentChannels' must contain at least one channel (e.g. ['card', 'transfer']).";
|
|
52
|
+
if (!config.defaultChannel) return "'defaultChannel' is required (e.g. 'card').";
|
|
53
53
|
return null;
|
|
54
54
|
}
|
|
55
55
|
export function presentPayment(config, callbacks) {
|
|
@@ -72,6 +72,7 @@ export function presentPayment(config, callbacks) {
|
|
|
72
72
|
// Apply defaults for fields the API requires to be non-empty
|
|
73
73
|
const sanitizedConfig = {
|
|
74
74
|
...config,
|
|
75
|
+
fullName: config.fullName?.trim() || '',
|
|
75
76
|
address1: config.address1?.trim() || 'Customer Address',
|
|
76
77
|
city: config.city?.trim() || 'Lagos',
|
|
77
78
|
phoneNumber: config.phoneNumber?.trim() || ''
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","Platform","NativeNetappspay","emitter","validateConfig","config","publicKey","trim","email","fullName","narration","amount","currency","paymentChannels","length","defaultChannel","presentPayment","callbacks","OS","console","warn","error","onFailed","status","message","timestamp","Date","toISOString","sanitizedConfig","address1","city","phoneNumber","subscriptions","addListener","payload","onSuccess","onCancel","onReady","setTimeout","present","forEach","s","remove"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,SAASA,kBAAkB,EAAEC,QAAQ,QAAQ,cAAc;AAC3D,OAAOC,gBAAgB,MAAM,uBAAoB;;AAEjD;;AAqGA;;AAEA,MAAMC,OAAO,GAAG,IAAIH,kBAAkB,CAACE,gBAAuB,CAAC;;AAE/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,cAAcA,CAACC,MAAqB,EAAiB;EAC5D,IAAI,CAACA,MAAM,CAACC,SAAS,EAAEC,IAAI,CAAC,CAAC,EAAE,OAAO,
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","Platform","NativeNetappspay","emitter","validateConfig","config","publicKey","trim","email","fullName","narration","amount","currency","paymentChannels","length","defaultChannel","presentPayment","callbacks","OS","console","warn","error","onFailed","status","message","timestamp","Date","toISOString","sanitizedConfig","address1","city","phoneNumber","subscriptions","addListener","payload","onSuccess","onCancel","onReady","setTimeout","present","forEach","s","remove"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -125,7 +125,7 @@ const emitter = new NativeEventEmitter(NativeNetappspay as any);
|
|
|
125
125
|
* amount: 150000,
|
|
126
126
|
* currency: 'NGN',
|
|
127
127
|
* email: 'customer@email.com',
|
|
128
|
-
* fullName: '
|
|
128
|
+
* fullName: 'Jane Smith',
|
|
129
129
|
* narration: 'Order #1234',
|
|
130
130
|
* paymentChannels: ['card', 'transfer', 'ussd'],
|
|
131
131
|
* defaultChannel: 'card',
|
|
@@ -139,14 +139,14 @@ const emitter = new NativeEventEmitter(NativeNetappspay as any);
|
|
|
139
139
|
* ```
|
|
140
140
|
*/
|
|
141
141
|
function validateConfig(config: PaymentConfig): string | null {
|
|
142
|
-
if (!config.publicKey?.trim()) return 'publicKey is required';
|
|
143
|
-
if (!config.email?.trim()) return 'email is required';
|
|
144
|
-
if (!config.fullName?.trim()) return 'fullName is required';
|
|
145
|
-
if (!config.narration?.trim()) return 'narration is required
|
|
146
|
-
if (typeof config.amount !== 'number' || config.amount <= 0) return 'amount must be a positive number
|
|
147
|
-
if (!config.currency) return 'currency is required';
|
|
148
|
-
if (!config.paymentChannels?.length) return 'paymentChannels must
|
|
149
|
-
if (!config.defaultChannel) return 'defaultChannel is required';
|
|
142
|
+
if (!config.publicKey?.trim()) return "'publicKey' is required. Provide your merchant public key (e.g. 'pk_test_xxx').";
|
|
143
|
+
if (!config.email?.trim()) return "'email' is required. Provide the customer's email address.";
|
|
144
|
+
if (!config.fullName?.trim()) return "'fullName' is required. Provide the customer's full name (e.g. first and last name).";
|
|
145
|
+
if (!config.narration?.trim()) return "'narration' is required. Provide a short description for this payment.";
|
|
146
|
+
if (typeof config.amount !== 'number' || config.amount <= 0) return "'amount' must be a positive number in minor units (e.g. 150000 for ₦1,500.00).";
|
|
147
|
+
if (!config.currency) return "'currency' is required (e.g. 'NGN').";
|
|
148
|
+
if (!config.paymentChannels?.length) return "'paymentChannels' must contain at least one channel (e.g. ['card', 'transfer']).";
|
|
149
|
+
if (!config.defaultChannel) return "'defaultChannel' is required (e.g. 'card').";
|
|
150
150
|
return null;
|
|
151
151
|
}
|
|
152
152
|
|
|
@@ -174,6 +174,7 @@ export function presentPayment(
|
|
|
174
174
|
// Apply defaults for fields the API requires to be non-empty
|
|
175
175
|
const sanitizedConfig = {
|
|
176
176
|
...config,
|
|
177
|
+
fullName: config.fullName?.trim() || '',
|
|
177
178
|
address1: config.address1?.trim() || 'Customer Address',
|
|
178
179
|
city: config.city?.trim() || 'Lagos',
|
|
179
180
|
phoneNumber: config.phoneNumber?.trim() || '',
|