@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.
@@ -64,5 +64,5 @@ android {
64
64
 
65
65
  dependencies {
66
66
  implementation "com.facebook.react:react-android"
67
- implementation "ng.netapps:netappspay:1.2.0"
67
+ implementation "ng.netapps:netappspay:1.3.0"
68
68
  }
@@ -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
  }
@@ -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: 'John Doe',
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 have at least one channel';
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() || ''
@@ -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":"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","ignoreList":[]}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@netappsng/react-native-pay",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "netapps payment sdk",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
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: 'John Doe',
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 have at least one channel';
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() || '',