@netappsng/react-native-pay 0.1.0 → 0.2.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.
- package/Netappspay.podspec +1 -1
- package/README.md +199 -3
- package/android/build.gradle +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +2 -1
package/Netappspay.podspec
CHANGED
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @netappsng/react-native-pay
|
|
2
2
|
|
|
3
|
-
NetAppsPay React Native SDK — accept card, bank transfer, USSD, and
|
|
3
|
+
NetAppsPay React Native SDK — accept card, bank transfer, USSD, PayAttitude and Tap to Pay (NFC) payments in your React Native app. Supports **iOS** and **Android**.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ yarn add @netappsng/react-native-pay
|
|
|
16
16
|
cd ios && pod install
|
|
17
17
|
```
|
|
18
18
|
|
|
19
|
-
The SDK uses the native [NetAppsPaySDK](https://
|
|
19
|
+
The SDK uses the native [NetAppsPaySDK](https://cocoapods.org/pods/NetAppsPaySDK) which is resolved automatically via CocoaPods.
|
|
20
20
|
|
|
21
21
|
### Android
|
|
22
22
|
|
|
@@ -168,6 +168,9 @@ export default function CheckoutScreen() {
|
|
|
168
168
|
| `'ussd'` | USSD payment |
|
|
169
169
|
| `'payattitude'` | PayAttitude (USSD push) |
|
|
170
170
|
| `'moniflow'` | MoniFlow marketplace |
|
|
171
|
+
| `'tap_to_pay'` | NFC Tap to Pay (Android only — requires setup, see below) |
|
|
172
|
+
|
|
173
|
+
> **Note:** `tap_to_pay` is only available on Android. On iOS, this channel is silently ignored.
|
|
171
174
|
|
|
172
175
|
### Callbacks
|
|
173
176
|
|
|
@@ -178,12 +181,205 @@ export default function CheckoutScreen() {
|
|
|
178
181
|
| `onCancel` | — | User dismissed the payment sheet |
|
|
179
182
|
| `onReady` | — | Payment sheet is fully loaded |
|
|
180
183
|
|
|
184
|
+
## Tap to Pay (NFC) — Android Only
|
|
185
|
+
|
|
186
|
+
Tap to Pay lets customers pay by tapping their contactless card on the Android device. It requires an additional native `taptopay` module that is **not** included by default. Your app will compile and work normally without it — devices without NFC are unaffected.
|
|
187
|
+
|
|
188
|
+
> **Not supported on iOS.** If you include `'tap_to_pay'` in `paymentChannels` on iOS, it is silently ignored.
|
|
189
|
+
|
|
190
|
+
### Step 1 — Set minSdk to 28
|
|
191
|
+
|
|
192
|
+
The NFC contactless SDK requires Android API 28+. Open your React Native project's Android build file and set `minSdkVersion`:
|
|
193
|
+
|
|
194
|
+
```groovy
|
|
195
|
+
// android/app/build.gradle
|
|
196
|
+
|
|
197
|
+
android {
|
|
198
|
+
defaultConfig {
|
|
199
|
+
minSdkVersion 28 // Required for NFC contactless SDK
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Step 2 — Add the taptopay module dependency
|
|
205
|
+
|
|
206
|
+
In your React Native project's **Android** build files, add the `taptopay` module alongside the payment SDK:
|
|
207
|
+
|
|
208
|
+
```groovy
|
|
209
|
+
// android/app/build.gradle
|
|
210
|
+
|
|
211
|
+
dependencies {
|
|
212
|
+
// The core payment SDK (already added by the RN package)
|
|
213
|
+
implementation "ng.netapps:netappspay:1.1.0"
|
|
214
|
+
|
|
215
|
+
// Tap to Pay NFC plugin — add this line
|
|
216
|
+
implementation "ng.netapps:taptopay:1.0.0"
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Then sync your Gradle project (Android Studio will prompt you, or run `cd android && ./gradlew sync`).
|
|
221
|
+
|
|
222
|
+
### Step 3 — Fix the manifest merger conflict
|
|
223
|
+
|
|
224
|
+
The POS SDK includes its own theme which conflicts with your app's theme. Add `tools:replace="android:theme"` to your `<application>` tag:
|
|
225
|
+
|
|
226
|
+
```xml
|
|
227
|
+
<!-- android/app/src/main/AndroidManifest.xml -->
|
|
228
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
|
229
|
+
xmlns:tools="http://schemas.android.com/tools">
|
|
230
|
+
|
|
231
|
+
<application
|
|
232
|
+
android:theme="@style/AppTheme"
|
|
233
|
+
tools:replace="android:theme">
|
|
234
|
+
<!-- your activities -->
|
|
235
|
+
</application>
|
|
236
|
+
</manifest>
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
> If your manifest already has an `<application>` tag with a theme, just add `xmlns:tools="http://schemas.android.com/tools"` to the `<manifest>` tag and `tools:replace="android:theme"` to the `<application>` tag.
|
|
240
|
+
|
|
241
|
+
### Step 4 — Register the NFC provider in your Android app
|
|
242
|
+
|
|
243
|
+
Open your `MainApplication.kt` (or `MainApplication.java`) file — this is usually at:
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
android/app/src/main/java/com/yourapp/MainApplication.kt
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Add the import and registration call inside `onCreate`:
|
|
250
|
+
|
|
251
|
+
```kotlin
|
|
252
|
+
// MainApplication.kt
|
|
253
|
+
|
|
254
|
+
import com.netappspay.sdk.taptopay.TapToPayRegistry
|
|
255
|
+
import com.netappspay.taptopay.NfcTapToPayProvider
|
|
256
|
+
|
|
257
|
+
class MainApplication : Application(), ReactApplication {
|
|
258
|
+
|
|
259
|
+
override fun onCreate() {
|
|
260
|
+
super.onCreate()
|
|
261
|
+
|
|
262
|
+
// Register NFC Tap to Pay provider — do this once on app start
|
|
263
|
+
TapToPayRegistry.register(NfcTapToPayProvider())
|
|
264
|
+
|
|
265
|
+
// ... rest of your onCreate
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
**Java version:**
|
|
271
|
+
|
|
272
|
+
```java
|
|
273
|
+
// MainApplication.java
|
|
274
|
+
|
|
275
|
+
import com.netappspay.sdk.taptopay.TapToPayRegistry;
|
|
276
|
+
import com.netappspay.taptopay.NfcTapToPayProvider;
|
|
277
|
+
|
|
278
|
+
public class MainApplication extends Application implements ReactApplication {
|
|
279
|
+
|
|
280
|
+
@Override
|
|
281
|
+
public void onCreate() {
|
|
282
|
+
super.onCreate();
|
|
283
|
+
|
|
284
|
+
// Register NFC Tap to Pay provider
|
|
285
|
+
TapToPayRegistry.INSTANCE.register(new NfcTapToPayProvider());
|
|
286
|
+
|
|
287
|
+
// ... rest of your onCreate
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
That's all the native code you need. The `taptopay` module's `AndroidManifest.xml` automatically adds the NFC permission with `android:required="false"`, so your app still installs on devices without NFC.
|
|
293
|
+
|
|
294
|
+
### Step 5 — Include `'tap_to_pay'` in your payment channels
|
|
295
|
+
|
|
296
|
+
Now in your React Native / TypeScript code, add `'tap_to_pay'` to the `paymentChannels` array:
|
|
297
|
+
|
|
298
|
+
```tsx
|
|
299
|
+
import { presentPayment } from '@netappsng/react-native-pay';
|
|
300
|
+
import type { PaymentConfig } from '@netappsng/react-native-pay';
|
|
301
|
+
|
|
302
|
+
const config: PaymentConfig = {
|
|
303
|
+
publicKey: 'pk_live_xxxxxxxxxxxxxxxxxxxx',
|
|
304
|
+
amount: 10000,
|
|
305
|
+
currency: 'NGN',
|
|
306
|
+
email: 'john@example.com',
|
|
307
|
+
fullName: 'John Doe',
|
|
308
|
+
phoneNumber: '08106720418',
|
|
309
|
+
narration: 'POS Payment',
|
|
310
|
+
paymentChannels: ['card', 'transfer', 'tap_to_pay'],
|
|
311
|
+
defaultChannel: 'card',
|
|
312
|
+
businessName: 'Demo Store',
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
presentPayment(config, {
|
|
316
|
+
onSuccess: (payload) => {
|
|
317
|
+
console.log('Tap to Pay successful!', payload.transactionRef);
|
|
318
|
+
},
|
|
319
|
+
onFailed: (payload) => {
|
|
320
|
+
console.log('Payment failed:', payload.message);
|
|
321
|
+
},
|
|
322
|
+
onCancel: () => {
|
|
323
|
+
console.log('Cancelled');
|
|
324
|
+
},
|
|
325
|
+
});
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
### How it works
|
|
329
|
+
|
|
330
|
+
1. When the payment sheet opens, the SDK checks if a Tap to Pay provider is registered via `TapToPayRegistry`
|
|
331
|
+
2. If registered **and** the device has NFC hardware enabled, the "Tap to Pay" tab appears
|
|
332
|
+
3. If no provider is registered or the device lacks NFC, the tab is automatically hidden — no errors, no crashes
|
|
333
|
+
4. The user selects their **Account Type** and **Device Type** using the chip controls on the Tap to Pay screen
|
|
334
|
+
5. The customer taps their contactless card on the device to complete payment
|
|
335
|
+
|
|
336
|
+
### Account Type
|
|
337
|
+
|
|
338
|
+
The Tap to Pay screen presents a segmented chip control for account type selection:
|
|
339
|
+
|
|
340
|
+
| Chip | Value |
|
|
341
|
+
|------|-------|
|
|
342
|
+
| **Default** | `DEFAULT_UNSPECIFIED` — the issuer's default account |
|
|
343
|
+
| **Savings** | `SAVINGS` |
|
|
344
|
+
| **Current** | `CURRENT` |
|
|
345
|
+
| **Credit** | `CREDIT` |
|
|
346
|
+
|
|
347
|
+
### Device Type
|
|
348
|
+
|
|
349
|
+
A second chip control lets the user choose how the NFC card is read:
|
|
350
|
+
|
|
351
|
+
| Chip | Description |
|
|
352
|
+
|------|-------------|
|
|
353
|
+
| **Internal NFC** | Uses the device's built-in NFC antenna (most common) |
|
|
354
|
+
| **External** | Uses an external NFC reader connected to the device |
|
|
355
|
+
| **NFC Kit** | Uses a third-party NFC kit module |
|
|
356
|
+
|
|
357
|
+
The selected device type is **persisted automatically** — the SDK remembers the user's last choice across sessions so they don't have to re-select each time.
|
|
358
|
+
|
|
359
|
+
### Requirements
|
|
360
|
+
|
|
361
|
+
| Requirement | Value |
|
|
362
|
+
|---|---|
|
|
363
|
+
| Min Android SDK | **28** (Android 9.0) |
|
|
364
|
+
| NFC hardware | Required on the device (for Internal NFC) |
|
|
365
|
+
| `taptopay` module | Must be added as a dependency |
|
|
366
|
+
| Manifest fix | `tools:replace="android:theme"` on `<application>` |
|
|
367
|
+
| Provider registration | Must call `TapToPayRegistry.register()` before payment |
|
|
368
|
+
|
|
369
|
+
### Unregister (optional)
|
|
370
|
+
|
|
371
|
+
If you need to disable Tap to Pay at runtime:
|
|
372
|
+
|
|
373
|
+
```kotlin
|
|
374
|
+
TapToPayRegistry.unregister()
|
|
375
|
+
```
|
|
376
|
+
|
|
181
377
|
## Native SDKs
|
|
182
378
|
|
|
183
379
|
This package bridges the native NetAppsPay SDKs:
|
|
184
380
|
|
|
185
381
|
- **iOS**: [NetAppsPaySDK](https://github.com/nicenapp/NetAppsPaySDK) (Swift Package)
|
|
186
|
-
- **Android**: `ng.netapps:netappspay:1.
|
|
382
|
+
- **Android**: `ng.netapps:netappspay:1.1.0` (Maven Central)
|
|
187
383
|
|
|
188
384
|
## License
|
|
189
385
|
|
package/android/build.gradle
CHANGED
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;;
|
|
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,5 +1,5 @@
|
|
|
1
1
|
export type Currency = 'NGN' | 'USD';
|
|
2
|
-
export type PaymentChannel = 'card' | 'transfer' | 'ussd' | 'payattitude' | 'moniflow';
|
|
2
|
+
export type PaymentChannel = 'card' | 'transfer' | 'ussd' | 'payattitude' | 'moniflow' | 'tap_to_pay';
|
|
3
3
|
export type ChargeAllocation = 'CUSTOMER' | 'MERCHANT';
|
|
4
4
|
export interface PaymentConfig {
|
|
5
5
|
/** Your NetAppsPay public key */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAKA,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,KAAK,CAAC;AAErC,MAAM,MAAM,cAAc,GACtB,MAAM,GACN,UAAU,GACV,MAAM,GACN,aAAa,GACb,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED