@payloqa/payment-widget 1.0.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 (36) hide show
  1. package/README.md +460 -0
  2. package/dist/components/NetworkSelector.d.ts +11 -0
  3. package/dist/components/NetworkSelector.d.ts.map +1 -0
  4. package/dist/components/OTPInput.d.ts +13 -0
  5. package/dist/components/OTPInput.d.ts.map +1 -0
  6. package/dist/components/PaymentWidget.d.ts +10 -0
  7. package/dist/components/PaymentWidget.d.ts.map +1 -0
  8. package/dist/components/PhoneInput.d.ts +13 -0
  9. package/dist/components/PhoneInput.d.ts.map +1 -0
  10. package/dist/components/ResultScreen.d.ts +12 -0
  11. package/dist/components/ResultScreen.d.ts.map +1 -0
  12. package/dist/components/TimeoutScreen.d.ts +11 -0
  13. package/dist/components/TimeoutScreen.d.ts.map +1 -0
  14. package/dist/components/VerifyingScreen.d.ts +9 -0
  15. package/dist/components/VerifyingScreen.d.ts.map +1 -0
  16. package/dist/demo.d.ts +4 -0
  17. package/dist/demo.d.ts.map +1 -0
  18. package/dist/index.d.ts +175 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.esm.js +2 -0
  21. package/dist/index.esm.js.map +1 -0
  22. package/dist/index.umd.js +2 -0
  23. package/dist/index.umd.js.map +1 -0
  24. package/dist/payment-widget.css +1 -0
  25. package/dist/payment-widget.d.ts +175 -0
  26. package/dist/payment-widget.esm.js +2 -0
  27. package/dist/payment-widget.esm.js.map +1 -0
  28. package/dist/payment-widget.umd.js +2 -0
  29. package/dist/payment-widget.umd.js.map +1 -0
  30. package/dist/services/paymentService.d.ts +16 -0
  31. package/dist/services/paymentService.d.ts.map +1 -0
  32. package/dist/types/payment.d.ts +150 -0
  33. package/dist/types/payment.d.ts.map +1 -0
  34. package/dist/utils/index.d.ts +11 -0
  35. package/dist/utils/index.d.ts.map +1 -0
  36. package/package.json +86 -0
@@ -0,0 +1,16 @@
1
+ import { PaymentServiceConfig, CreatePaymentRequest, CreatePaymentResponse, VerifyOTPRequest, VerifyOTPResponse, ResendOTPRequest, ResendOTPResponse, GetPaymentStatusResponse, CancelPaymentRequest, CancelPaymentResponse } from "../types/payment";
2
+ declare class PaymentService {
3
+ private readonly config;
4
+ constructor(config: PaymentServiceConfig);
5
+ private makeRequest;
6
+ createPayment(request: CreatePaymentRequest): Promise<CreatePaymentResponse>;
7
+ verifyOTP(paymentId: string, request: VerifyOTPRequest): Promise<VerifyOTPResponse>;
8
+ resendOTP(paymentId: string, request: ResendOTPRequest): Promise<ResendOTPResponse>;
9
+ getPaymentStatus(paymentId: string): Promise<GetPaymentStatusResponse>;
10
+ cancelPayment(paymentId: string, request?: CancelPaymentRequest): Promise<CancelPaymentResponse>;
11
+ getPlatformInfo(): Promise<{
12
+ logo_url?: string;
13
+ }>;
14
+ }
15
+ export default PaymentService;
16
+ //# sourceMappingURL=paymentService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paymentService.d.ts","sourceRoot":"","sources":["../../src/services/paymentService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAK1B,cAAM,cAAc;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;gBAElC,MAAM,EAAE,oBAAoB;YAI1B,WAAW;IAsCnB,aAAa,CACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,qBAAqB,CAAC;IAc3B,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,CAAC;IAOvB,SAAS,CACb,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,CAAC;IAOvB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAMtE,aAAa,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,qBAAqB,CAAC;IAO3B,eAAe,IAAI,OAAO,CAAC;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAkBxD;AAED,eAAe,cAAc,CAAC"}
@@ -0,0 +1,150 @@
1
+ export interface PaymentServiceConfig {
2
+ apiKey: string;
3
+ platformId: string;
4
+ baseUrl?: string;
5
+ }
6
+ export interface CreatePaymentRequest {
7
+ amount: number;
8
+ currency: string;
9
+ payment_method: "mobile_money" | "card";
10
+ phone_number: string;
11
+ network?: "mtn" | "vodafone" | "airteltigo";
12
+ redirect_url?: string;
13
+ webhook_url?: string;
14
+ reference?: string;
15
+ metadata?: Record<string, any>;
16
+ payee_id?: string;
17
+ offline?: boolean;
18
+ order_id?: string;
19
+ transaction_id?: string;
20
+ payer_id?: string;
21
+ payment_flow?: "direct" | "escrow";
22
+ }
23
+ export interface CreatePaymentResponse {
24
+ success: boolean;
25
+ data?: {
26
+ payment_id: string;
27
+ payment_url: string;
28
+ otp_required: boolean;
29
+ otp_sent: boolean;
30
+ message: string;
31
+ };
32
+ error?: {
33
+ code: string;
34
+ message: string;
35
+ };
36
+ }
37
+ export interface VerifyOTPRequest {
38
+ phone_number: string;
39
+ otp_code: string;
40
+ }
41
+ export interface VerifyOTPResponse {
42
+ success: boolean;
43
+ data?: {
44
+ payment_id: string;
45
+ status: PaymentStatus;
46
+ message: string;
47
+ };
48
+ error?: {
49
+ code: string;
50
+ message: string;
51
+ };
52
+ }
53
+ export interface ResendOTPRequest {
54
+ phone_number: string;
55
+ }
56
+ export interface ResendOTPResponse {
57
+ success: boolean;
58
+ data?: {
59
+ payment_id: string;
60
+ message: string;
61
+ };
62
+ error?: {
63
+ code: string;
64
+ message: string;
65
+ };
66
+ }
67
+ export interface GetPaymentStatusResponse {
68
+ success: boolean;
69
+ data?: PaymentData;
70
+ error?: {
71
+ code: string;
72
+ message: string;
73
+ };
74
+ }
75
+ export interface CancelPaymentRequest {
76
+ reason?: string;
77
+ metadata?: Record<string, any>;
78
+ }
79
+ export interface CancelPaymentResponse {
80
+ success: boolean;
81
+ data?: {
82
+ payment_id: string;
83
+ status: PaymentStatus;
84
+ message: string;
85
+ };
86
+ error?: {
87
+ code: string;
88
+ message: string;
89
+ };
90
+ }
91
+ export interface PaymentData {
92
+ payment_id: string;
93
+ status: PaymentStatus;
94
+ amount: number | string;
95
+ currency: string;
96
+ payment_method: "mobile_money" | "card";
97
+ phone_number?: string;
98
+ network?: "mtn" | "vodafone" | "airteltigo";
99
+ reference?: string;
100
+ created_at: string;
101
+ updated_at: string;
102
+ paid_at?: string;
103
+ metadata?: Record<string, any>;
104
+ }
105
+ export type PaymentStatus = "pending" | "processing" | "completed" | "failed" | "cancelled" | "expired";
106
+ export type PaymentWidgetDisplayMode = "modal" | "inline" | "fullpage";
107
+ export interface PaymentWidgetConfig {
108
+ apiKey: string;
109
+ platformId: string;
110
+ apiUrl?: string;
111
+ amount: number;
112
+ currency?: string;
113
+ redirect_url?: string;
114
+ payeeId?: string;
115
+ orderId?: string;
116
+ transactionId?: string;
117
+ payerId?: string;
118
+ webhookUrl?: string;
119
+ reference?: string;
120
+ metadata?: Record<string, any>;
121
+ displayMode?: PaymentWidgetDisplayMode;
122
+ primaryColor?: string;
123
+ logoUrl?: string;
124
+ onSuccess?: (payment: PaymentData) => void;
125
+ onError?: (error: PaymentError) => void;
126
+ onClose?: () => void;
127
+ }
128
+ export interface PaymentError {
129
+ message: string;
130
+ code?: string;
131
+ details?: any;
132
+ }
133
+ export type PaymentWidgetState = "phone-input" | "otp-input" | "verifying" | "success" | "failed" | "loading";
134
+ export type MobileNetwork = "mtn" | "vodafone" | "airteltigo";
135
+ export interface NetworkOption {
136
+ value: MobileNetwork;
137
+ label: string;
138
+ icon?: string;
139
+ }
140
+ export type PaymentRedirectStatus = "completed" | "failed" | "cancelled" | "pending";
141
+ export interface PaymentRedirectParams {
142
+ payment_id: string;
143
+ status: PaymentRedirectStatus;
144
+ amount?: number;
145
+ currency?: string;
146
+ reference?: string;
147
+ reason?: string;
148
+ message?: string;
149
+ }
150
+ //# sourceMappingURL=payment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payment.d.ts","sourceRoot":"","sources":["../../src/types/payment.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { PaymentData, PaymentRedirectStatus } from "../types/payment";
2
+ export declare const formatPhoneNumber: (phoneNumber: string) => string;
3
+ /**
4
+ * Validates that a redirect URL is HTTPS
5
+ */
6
+ export declare function validateRedirectUrl(url: string): boolean;
7
+ /**
8
+ * Builds a redirect URL with query parameters based on payment status
9
+ */
10
+ export declare function buildRedirectUrl(redirectUrl: string, paymentId: string, status: PaymentRedirectStatus, paymentData?: PaymentData): string;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,eAAO,MAAM,iBAAiB,GAAI,aAAa,MAAM,KAAG,MAoBvD,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,qBAAqB,EAC7B,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,CA+BR"}
package/package.json ADDED
@@ -0,0 +1,86 @@
1
+ {
2
+ "name": "@payloqa/payment-widget",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "description": "React-based payment widget for Payloqa",
6
+ "main": "dist/index.umd.js",
7
+ "module": "dist/index.esm.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.esm.js",
12
+ "require": "./dist/index.umd.js",
13
+ "types": "./dist/index.d.ts"
14
+ },
15
+ "./styles": {
16
+ "default": "./dist/payment-widget.css"
17
+ },
18
+ "./dist/payment-widget.css": "./dist/payment-widget.css"
19
+ },
20
+ "scripts": {
21
+ "dev": "vite",
22
+ "build": "rollup -c && node scripts/build-css.js",
23
+ "build:css": "node scripts/build-css.js",
24
+ "type-check": "tsc --noEmit",
25
+ "clean": "rm -rf dist",
26
+ "prepublishOnly": "npm run clean && npm run build"
27
+ },
28
+ "peerDependencies": {
29
+ "react": ">=16.8.0",
30
+ "react-dom": ">=16.8.0"
31
+ },
32
+ "dependencies": {
33
+ "formik": "^2.4.5",
34
+ "react-otp-input": "^3.1.1",
35
+ "react-phone-number-input": "^3.4.12",
36
+ "react-select": "^5.8.0",
37
+ "yup": "^1.3.3"
38
+ },
39
+ "devDependencies": {
40
+ "@rollup/plugin-commonjs": "^25.0.0",
41
+ "@rollup/plugin-node-resolve": "^15.0.0",
42
+ "@rollup/plugin-replace": "^6.0.3",
43
+ "@rollup/plugin-terser": "^0.4.0",
44
+ "@rollup/plugin-typescript": "^11.0.0",
45
+ "@tailwindcss/forms": "^0.5.0",
46
+ "@types/react": "^18.0.0",
47
+ "@types/react-dom": "^18.0.0",
48
+ "@types/react-phone-number-input": "^3.0.17",
49
+ "@types/react-select": "^5.0.0",
50
+ "@vitejs/plugin-react": "^4.7.0",
51
+ "autoprefixer": "^10.0.0",
52
+ "cssnano": "^6.0.0",
53
+ "postcss": "^8.5.6",
54
+ "react": "^18.0.0",
55
+ "react-dom": "^18.0.0",
56
+ "rollup": "^4.0.0",
57
+ "rollup-plugin-dts": "^6.0.0",
58
+ "rollup-plugin-postcss": "^4.0.0",
59
+ "tailwindcss": "^3.0.0",
60
+ "vite": "^5.0.0",
61
+ "typescript": "^5.0.0"
62
+ },
63
+ "keywords": [
64
+ "payloqa",
65
+ "payment",
66
+ "widget",
67
+ "react",
68
+ "mobile-money",
69
+ "payment-processing"
70
+ ],
71
+ "author": "Payloqa Team",
72
+ "license": "MIT",
73
+ "repository": {
74
+ "type": "git",
75
+ "url": "https://github.com/payloqa/payloqa-widgets.git",
76
+ "directory": "packages/payment-widget"
77
+ },
78
+ "homepage": "https://github.com/payloqa/payloqa-widgets#readme",
79
+ "bugs": {
80
+ "url": "https://github.com/payloqa/payloqa-widgets/issues"
81
+ },
82
+ "files": [
83
+ "dist",
84
+ "README.md"
85
+ ]
86
+ }