@crediblemark/buayar 0.6.2 → 0.8.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/README.md CHANGED
@@ -30,43 +30,46 @@
30
30
 
31
31
  #### 🇮🇩 Indonesian (10)
32
32
 
33
- | Provider | Redirect | Direct API | Webhook | Client |
34
- |---|:---:|:---:|:---:|:---:|
35
- | Midtrans | ✅ Snap | ✅ Core API | SHA-512 | `MidtransClient` |
36
- | Duitku | ✅ | ✅ | MD5 | `DuitkuClient` |
37
- | iPaymu | ✅ | ✅ | HMAC-SHA256 | `IpaymuClient` |
38
- | Xendit | ✅ Invoice v2 | ✅ Payments v3 | Token | `XenditClient` |
39
- | DOKU Jokul | ✅ v1 | ✅ v2 | HMAC-SHA256 | `DokuClient` |
40
- | PrismaLink | ✅ | ✅ | SHA-256 | `PrismalinkClient` |
41
- | Faspay | ✅ | ✅ | SHA1(MD5) | `FaspayClient` |
42
- | Finpay | ✅ | ✅ | HMAC-SHA512 | `FinpayClient` |
43
- | Nicepay | ✅ | ✅ | SHA-256 | `NicepayClient` |
44
- | OY! Bisnis | ✅ | ✅ | Header Auth | `OyClient` |
33
+ | Provider | Status | Redirect | Direct API | Webhook | Client |
34
+ |---|:---:|:---:|:---:|:---:|:---:|
35
+ | Midtrans | Tested | ✅ Snap | ✅ Core API | SHA-512 | `MidtransClient` |
36
+ | Duitku | Tested | ✅ | ✅ | MD5 | `DuitkuClient` |
37
+ | iPaymu | Tested | ✅ | ✅ | HMAC-SHA256 | `IpaymuClient` |
38
+ | Xendit | Tested | ✅ Invoice v2 | ✅ Payments v3 | Token | `XenditClient` |
39
+ | DOKU Jokul | Tested | ✅ v1 | ✅ v2 | HMAC-SHA256 | `DokuClient` |
40
+ | PrismaLink | Tested | ✅ | ✅ | SHA-256 | `PrismalinkClient` |
41
+ | Faspay | Tested | ✅ | ✅ | SHA1(MD5) | `FaspayClient` |
42
+ | Finpay | Tested | ✅ | ✅ | HMAC-SHA512 | `FinpayClient` |
43
+ | Nicepay | Tested | ✅ | ✅ | SHA-256 | `NicepayClient` |
44
+ | OY! Bisnis | Tested | ✅ | ✅ | Header Auth | `OyClient` |
45
45
 
46
46
  #### 🌍 International (9)
47
47
 
48
- | Provider | Redirect | Direct API | Webhook | Client |
49
- |---|:---:|:---:|:---:|:---:|
50
- | Stripe | ✅ Checkout Sessions | ✅ Payment Intents | HMAC-SHA256 | `StripeClient` |
51
- | PayPal | ✅ Orders v2 | ✅ Capture | OAuth2 | `PaypalClient` |
52
- | Adyen | ✅ Sessions v68 | ✅ Payments v68 | HMAC-SHA256 | `AdyenClient` |
53
- | Checkout.com | ✅ Payment Links | ✅ Payments API | HMAC-SHA256 | `CheckoutComClient` |
54
- | Razorpay | ✅ Payment Links | ✅ Orders API | HMAC-SHA256 | `RazorpayClient` |
55
- | Square | ✅ Payment Links | ✅ Payments API | HMAC-SHA256 | `SquareClient` |
56
- | PayU | ✅ Orders v2.1 | ✅ Pay Methods | MD5/SHA-256 | `PayuClient` |
57
- | Braintree | ✅ Drop-in UI Token | ✅ Transaction API | SHA1 HMAC | `BraintreeClient` |
58
- | 2Checkout | ✅ REST v6.0 | ✅ REST v6.0 | IPN MD5 | `TwoCheckoutClient` |
48
+ | Provider | Status | Redirect | Direct API | Webhook | Client |
49
+ |---|:---:|:---:|:---:|:---:|:---:|
50
+ | Stripe | Tested | ✅ Checkout Sessions | ✅ Payment Intents | HMAC-SHA256 | `StripeClient` |
51
+ | PayPal | Tested | ✅ Orders v2 | ✅ Capture | OAuth2 | `PaypalClient` |
52
+ | Adyen | Tested | ✅ Sessions v68 | ✅ Payments v68 | HMAC-SHA256 | `AdyenClient` |
53
+ | Checkout.com | Tested | ✅ Payment Links | ✅ Payments API | HMAC-SHA256 | `CheckoutComClient` |
54
+ | Razorpay | Tested | ✅ Payment Links | ✅ Orders API | HMAC-SHA256 | `RazorpayClient` |
55
+ | Square | Tested | ✅ Payment Links | ✅ Payments API | HMAC-SHA256 | `SquareClient` |
56
+ | PayU | Tested | ✅ Orders v2.1 | ✅ Pay Methods | MD5/SHA-256 | `PayuClient` |
57
+ | Braintree | Tested | ✅ Drop-in UI Token | ✅ Transaction API | SHA1 HMAC | `BraintreeClient` |
58
+ | 2Checkout | Tested | ✅ REST v6.0 | ✅ REST v6.0 | IPN MD5 | `TwoCheckoutClient` |
59
59
 
60
60
  ### ⚙️ Environment Variables
61
61
 
62
62
  #### Universal (Recommended)
63
63
  ```env
64
- # Active provider: any of the 19 supported names
65
- PROVIDER_PG=midtrans
64
+ # (optional) Active provider: any of the 19 supported names
65
+ # If empty, the provider is AUTO-DETECTED from filled credentials.
66
+ BUAYAR_PROVIDER=midtrans
66
67
 
67
- # Universal credentials (auto-mapped per provider)
68
+ # Universal credentials (auto-mapped per provider — same set for ALL providers)
68
69
  BUAYAR_API_KEY=your-server-key-or-secret
69
70
  BUAYAR_MERCHANT_CODE=your-merchant-id-or-username
71
+ BUAYAR_CLIENT_KEY=your-client-or-public-key
72
+ BUAYAR_MERCHANT_ID=your-merchant-id
70
73
  BUAYAR_SANDBOX=true
71
74
 
72
75
  # Callback & Return URLs
@@ -74,30 +77,47 @@ BUAYAR_CALLBACK_URL=https://myapp.com/api/payment/webhook
74
77
  BUAYAR_RETURN_URL=https://myapp.com/payment/finish
75
78
  ```
76
79
 
77
- #### Provider-Specific Variables
80
+ #### Build-time introspection (portability helpers)
78
81
 
79
- | Variable | Provider | Description |
80
- | :--- | :--- | :--- |
81
- | `MIDTRANS_SERVER_KEY` | Midtrans | Server Key |
82
- | `MIDTRANS_CLIENT_KEY` | Midtrans | Client Key (frontend) |
83
- | `DUITKU_API_KEY` / `DUITKU_MERCHANT_CODE` | Duitku | API Key & Merchant Code |
84
- | `IPAYMU_API_KEY` / `IPAYMU_VA` | iPaymu | API Key & VA number |
85
- | `XENDIT_SECRET_KEY` / `XENDIT_WEBHOOK_TOKEN` | Xendit | Secret Key & Webhook Token |
86
- | `DOKU_CLIENT_ID` / `DOKU_SECRET_KEY` | DOKU | Client ID & Secret Key |
87
- | `PRISMALINK_MERCHANT_ID` / `PRISMALINK_SECRET_KEY` | PrismaLink | Merchant ID & Secret Key |
88
- | `FASPAY_MERCHANT_ID` / `FASPAY_USER_ID` / `FASPAY_PASSWORD` | Faspay | Merchant ID, User ID & Password |
89
- | `FINPAY_MERCHANT_ID` / `FINPAY_MERCHANT_KEY` | Finpay | Merchant ID & Key |
90
- | `NICEPAY_IMID` / `NICEPAY_KEY` | Nicepay | iMid & Merchant Key |
91
- | `OY_USERNAME` / `OY_API_KEY` | OY! Bisnis | Username & API Key |
92
- | `STRIPE_SECRET_KEY` / `STRIPE_WEBHOOK_SECRET` / `STRIPE_PUBLIC_KEY` | Stripe | Secret, Webhook Secret, Publishable Key |
93
- | `PAYPAL_CLIENT_ID` / `PAYPAL_CLIENT_SECRET` / `PAYPAL_WEBHOOK_ID` | PayPal | OAuth2 Credentials & Webhook ID |
94
- | `ADYEN_API_KEY` / `ADYEN_MERCHANT_ACCOUNT` / `ADYEN_HMAC_KEY` | Adyen | API Key, Merchant Account & HMAC Key |
95
- | `CHECKOUTCOM_SECRET_KEY` / `CHECKOUTCOM_PUBLIC_KEY` / `CHECKOUTCOM_WEBHOOK_SECRET` | Checkout.com | Secret, Public Key & Webhook Secret |
96
- | `RAZORPAY_KEY_ID` / `RAZORPAY_KEY_SECRET` / `RAZORPAY_WEBHOOK_SECRET` | Razorpay | Key ID, Key Secret & Webhook Secret |
97
- | `SQUARE_ACCESS_TOKEN` / `SQUARE_APPLICATION_ID` / `SQUARE_LOCATION_ID` | Square | Access Token, App ID & Location ID |
98
- | `PAYU_POS_ID` / `PAYU_MD5_KEY` / `PAYU_OAUTH_CLIENT_ID` / `PAYU_OAUTH_CLIENT_SECRET` | PayU | POS ID, MD5 Key & OAuth2 Credentials |
99
- | `BRAINTREE_MERCHANT_ID` / `BRAINTREE_PUBLIC_KEY` / `BRAINTREE_PRIVATE_KEY` | Braintree | Merchant ID, Public & Private Key |
100
- | `TWOCHECKOUT_MERCHANT_CODE` / `TWOCHECKOUT_SECRET_KEY` / `TWOCHECKOUT_SECRET_WORD` | 2Checkout | Merchant Code, Secret Key & IPN Word |
82
+ Check what a provider actually supports — no docs digging:
83
+
84
+ ```ts
85
+ import { buayar } from "@crediblemark/buayar";
86
+
87
+ buayar.listProviders(); // all 19 registered providers
88
+ buayar.detectProviderFromEnv(process.env); // guess active provider from .env
89
+ buayar.detectProviderFromPayload(payload); // guess provider from webhook payload
90
+ buayar.getCapabilities("duitku");
91
+ // { methods: [...], operations: { refund: false, checkBalance: true, disburse: true } }
92
+ buayar.supports("xendit", "checkBalance"); // true
93
+ buayar.supportsMethod("qris", "stripe"); // true
94
+ ```
95
+
96
+ #### Universal Credential Mapping (`BUAYAR_*`)
97
+
98
+ You don't need provider-specific variable names. Simply use unified **`BUAYAR_*`** variables:
99
+
100
+ | Provider | `BUAYAR_PROVIDER` | `BUAYAR_API_KEY` | `BUAYAR_MERCHANT_CODE` | `BUAYAR_CLIENT_KEY` / Extra |
101
+ | :--- | :--- | :--- | :--- | :--- |
102
+ | **Midtrans** | `midtrans` | Server Key | *(optional)* | Client Key |
103
+ | **Duitku** | `duitku` | API Key | Merchant Code | *(not needed)* |
104
+ | **iPaymu** | `ipaymu` | API Key | Virtual Account (VA) | *(not needed)* |
105
+ | **Xendit** | `xendit` | Secret Key | *(optional)* | Webhook Token (`BUAYAR_WEBHOOK_SECRET`) |
106
+ | **DOKU Jokul** | `doku` | Secret Key | Client ID / Merchant ID | Client ID |
107
+ | **PrismaLink** | `prismalink` | Secret Key | Merchant ID | *(not needed)* |
108
+ | **Faspay** | `faspay` | Password | Merchant ID | User ID |
109
+ | **Finpay** | `finpay` | Merchant Key | Merchant ID | *(not needed)* |
110
+ | **Nicepay** | `nicepay` | Server Key | I-MID | *(not needed)* |
111
+ | **OY! Bisnis** | `oy` | API Key | Username | Username |
112
+ | **Stripe** | `stripe` | Secret Key | *(not needed)* | Publishable Key / Webhook Secret |
113
+ | **PayPal** | `paypal` | Client Secret | Client ID | Client ID |
114
+ | **Adyen** | `adyen` | API Key | Merchant Account | Client Key / HMAC Key |
115
+ | **Checkout.com** | `checkoutcom` | Secret Key | *(not needed)* | Public Key / Webhook Secret |
116
+ | **Razorpay** | `razorpay` | Key Secret | Key ID | Key ID |
117
+ | **Square** | `square` | Access Token | App ID | Location ID (`BUAYAR_PROJECT_ID`) |
118
+ | **PayU** | `payu` | MD5 Key | POS ID | POS ID |
119
+ | **Braintree** | `braintree` | Private Key | Merchant ID | Public Key |
120
+ | **2Checkout** | `twocheckout` | Secret Key | Merchant Code | Secret Word (`BUAYAR_WEBHOOK_SECRET`) |
101
121
 
102
122
  ### 📖 Usage
103
123
 
@@ -174,9 +194,10 @@ app.post("/api/payment/webhook", async (req, res) => {
174
194
  #### 5. Zero-Code PG Switch
175
195
  ```env
176
196
  # Switch from Midtrans to Stripe — zero code change required
177
- PROVIDER_PG=stripe
178
- STRIPE_SECRET_KEY=sk_live_...
179
- STRIPE_WEBHOOK_SECRET=whsec_...
197
+ BUAYAR_PROVIDER=stripe
198
+ BUAYAR_API_KEY=sk_live_...
199
+ BUAYAR_WEBHOOK_SECRET=whsec_...
200
+ # (or omit BUAYAR_PROVIDER entirely — provider auto-detected from the credentials)
180
201
  ```
181
202
 
182
203
  ---
@@ -205,7 +226,7 @@ STRIPE_WEBHOOK_SECRET=whsec_...
205
226
 
206
227
  * **Midtrans** — Snap API (Redirect/Popup) & Core API Direct Charge. Verifikasi SHA-512. `MidtransClient`.
207
228
  * **Duitku** — Redirect Checkout & Direct Inquiry API. Verifikasi MD5. `DuitkuClient` (Disbursement, Inquiry Rekening, Saldo).
208
- * **iPaymu** — Redirect & Direct Payment API v2. Verifikasi HMAC-SHA256. `IpaymuClient` (Cek Saldo, Cek Transaksi).
229
+ * **iPaymu** `[Tested]` — Redirect & Direct Payment API v2. Verifikasi HMAC-SHA256. `IpaymuClient` (Cek Saldo, Cek Transaksi, Histori, Bank List, Dynamic Methods, COD).
209
230
  * **Xendit** — Invoice v2 & Payment Requests v3. Webhook Token. `XenditClient` (Saldo, Expire Invoice, Disbursement).
210
231
  * **DOKU Jokul** — Checkout v1 & Direct API v2. HMAC-SHA256 + Digest. `DokuClient`.
211
232
  * **PrismaLink** — Checkout Page & Direct API. SHA-256. `PrismalinkClient`.
@@ -230,12 +251,15 @@ STRIPE_WEBHOOK_SECRET=whsec_...
230
251
 
231
252
  #### Universal (Direkomendasikan)
232
253
  ```env
233
- # Provider aktif (19 pilihan tersedia)
234
- PROVIDER_PG=midtrans
254
+ # (opsional) Provider aktif (19 pilihan). Bila kosong, AUTO-DIDETEKSI
255
+ # dari kredensial yang terisi. Set var ini sama untuk semua provider.
256
+ BUAYAR_PROVIDER=midtrans
235
257
 
236
258
  # Kredensial Universal (dipetakan otomatis per provider)
237
259
  BUAYAR_API_KEY=server-key-atau-secret
238
260
  BUAYAR_MERCHANT_CODE=merchant-id-atau-username
261
+ BUAYAR_CLIENT_KEY=client-atau-public-key
262
+ BUAYAR_MERCHANT_ID=merchant-id
239
263
  BUAYAR_SANDBOX=true
240
264
 
241
265
  # Callback & Return URL
@@ -243,33 +267,31 @@ BUAYAR_CALLBACK_URL=https://myapp.com/api/payment/webhook
243
267
  BUAYAR_RETURN_URL=https://myapp.com/payment/finish
244
268
  ```
245
269
 
246
- #### Kamus Variabel Lengkap Spesifik Provider
247
-
248
- | Variabel `.env` | Provider | Keterangan |
249
- | :--- | :--- | :--- |
250
- | `MIDTRANS_SERVER_KEY` / `MIDTRANS_CLIENT_KEY` | Midtrans | Server Key & Client Key |
251
- | `DUITKU_API_KEY` / `DUITKU_MERCHANT_CODE` | Duitku | API Key & Merchant Code |
252
- | `IPAYMU_API_KEY` / `IPAYMU_VA` | iPaymu | API Key & Nomor VA Merchant |
253
- | `XENDIT_SECRET_KEY` / `XENDIT_WEBHOOK_TOKEN` | Xendit | Secret Key & Webhook Token |
254
- | `DOKU_CLIENT_ID` / `DOKU_SECRET_KEY` | DOKU | Client ID & Secret Key |
255
- | `PRISMALINK_MERCHANT_ID` / `PRISMALINK_SECRET_KEY` | PrismaLink | Merchant ID & Secret Key |
256
- | `FASPAY_MERCHANT_ID` / `FASPAY_USER_ID` / `FASPAY_PASSWORD` | Faspay | Merchant ID, User ID & Password |
257
- | `FASPAY_MERCHANT_NAME` | Faspay | Nama display merchant di halaman Faspay |
258
- | `FINPAY_MERCHANT_ID` / `FINPAY_MERCHANT_KEY` | Finpay | Merchant ID & Merchant Key |
259
- | `NICEPAY_IMID` / `NICEPAY_KEY` | Nicepay | iMid & Merchant Key |
260
- | `OY_USERNAME` / `OY_API_KEY` | OY! Bisnis | Username & API Key |
261
- | `STRIPE_SECRET_KEY` / `STRIPE_WEBHOOK_SECRET` / `STRIPE_PUBLIC_KEY` | Stripe | Secret Key, Webhook Secret & Publishable Key |
262
- | `PAYPAL_CLIENT_ID` / `PAYPAL_CLIENT_SECRET` / `PAYPAL_WEBHOOK_ID` | PayPal | Client ID, Client Secret & Webhook ID |
263
- | `ADYEN_API_KEY` / `ADYEN_MERCHANT_ACCOUNT` / `ADYEN_HMAC_KEY` | Adyen | API Key, Merchant Account & HMAC Key |
264
- | `ADYEN_CLIENT_KEY` / `ADYEN_LIVE_URL_PREFIX` | Adyen | Client Key (frontend) & Live URL prefix (production) |
265
- | `CHECKOUTCOM_SECRET_KEY` / `CHECKOUTCOM_PUBLIC_KEY` / `CHECKOUTCOM_WEBHOOK_SECRET` | Checkout.com | Secret Key, Public Key & Webhook Secret |
266
- | `RAZORPAY_KEY_ID` / `RAZORPAY_KEY_SECRET` / `RAZORPAY_WEBHOOK_SECRET` | Razorpay | Key ID, Key Secret & Webhook Secret |
267
- | `SQUARE_ACCESS_TOKEN` / `SQUARE_APPLICATION_ID` / `SQUARE_LOCATION_ID` | Square | Access Token, App ID & Location ID |
268
- | `SQUARE_WEBHOOK_SIGNATURE_KEY` | Square | Signature Key untuk verifikasi webhook |
269
- | `PAYU_POS_ID` / `PAYU_MD5_KEY` | PayU | POS ID (Merchant ID) & MD5 Key untuk webhook |
270
- | `PAYU_OAUTH_CLIENT_ID` / `PAYU_OAUTH_CLIENT_SECRET` | PayU | OAuth2 Client ID & Secret untuk Bearer Token |
271
- | `BRAINTREE_MERCHANT_ID` / `BRAINTREE_PUBLIC_KEY` / `BRAINTREE_PRIVATE_KEY` | Braintree | Merchant ID, Public Key & Private Key |
272
- | `TWOCHECKOUT_MERCHANT_CODE` / `TWOCHECKOUT_SECRET_KEY` / `TWOCHECKOUT_SECRET_WORD` | 2Checkout | Merchant Code, Secret Key & Secret Word (IPN) |
270
+ #### Pemetaan Kredensial ke Variabel Universal `BUAYAR_*`
271
+
272
+ Anda **tidak perlu** membuat nama variabel khusus per provider. Cukup gunakan set variabel seragam **`BUAYAR_*`**. Tabel berikut menunjukkan data apa dari dashboard masing-masing payment gateway yang perlu Anda masukkan ke variabel `BUAYAR_*`:
273
+
274
+ | Provider | `BUAYAR_PROVIDER` | `BUAYAR_API_KEY` | `BUAYAR_MERCHANT_CODE` | `BUAYAR_CLIENT_KEY` / Tambahan |
275
+ | :--- | :--- | :--- | :--- | :--- |
276
+ | **Midtrans** | `midtrans` | Server Key | *(opsional)* | Client Key |
277
+ | **Duitku** | `duitku` | API Key | Merchant Code | *(tidak perlu)* |
278
+ | **iPaymu** | `ipaymu` | API Key | Nomor Virtual Account (VA) | *(tidak perlu)* |
279
+ | **Xendit** | `xendit` | Secret Key | *(opsional)* | Webhook Token (`BUAYAR_WEBHOOK_SECRET`) |
280
+ | **DOKU Jokul** | `doku` | Secret Key | Client ID / Merchant ID | Client ID |
281
+ | **PrismaLink** | `prismalink` | Secret Key | Merchant ID | *(tidak perlu)* |
282
+ | **Faspay** | `faspay` | Password | Merchant ID | User ID |
283
+ | **Finpay** | `finpay` | Merchant Key | Merchant ID | *(tidak perlu)* |
284
+ | **Nicepay** | `nicepay` | Server Key | I-MID | *(tidak perlu)* |
285
+ | **OY! Bisnis** | `oy` | API Key | Username | Username |
286
+ | **Stripe** | `stripe` | Secret Key | *(tidak perlu)* | Publishable Key / Webhook Secret |
287
+ | **PayPal** | `paypal` | Client Secret | Client ID | Client ID |
288
+ | **Adyen** | `adyen` | API Key | Merchant Account | Client Key / HMAC Key |
289
+ | **Checkout.com** | `checkoutcom` | Secret Key | *(tidak perlu)* | Public Key / Webhook Secret |
290
+ | **Razorpay** | `razorpay` | Key Secret | Key ID | Key ID |
291
+ | **Square** | `square` | Access Token | App ID | Location ID (`BUAYAR_PROJECT_ID`) |
292
+ | **PayU** | `payu` | MD5 Key | POS ID | POS ID |
293
+ | **Braintree** | `braintree` | Private Key | Merchant ID | Public Key |
294
+ | **2Checkout** | `twocheckout` | Secret Key | Merchant Code | Secret Word (`BUAYAR_WEBHOOK_SECRET`) |
273
295
 
274
296
  ### 📖 Panduan Penggunaan
275
297
 
@@ -336,9 +358,10 @@ app.post("/api/payment/webhook", async (req, res) => {
336
358
  #### 5. Zero-Code PG Switch
337
359
  ```env
338
360
  # Ganti dari Midtrans ke Stripe — tanpa ubah satu baris kode pun
339
- PROVIDER_PG=stripe
340
- STRIPE_SECRET_KEY=sk_live_...
341
- STRIPE_WEBHOOK_SECRET=whsec_...
361
+ BUAYAR_PROVIDER=stripe
362
+ BUAYAR_API_KEY=sk_live_...
363
+ BUAYAR_WEBHOOK_SECRET=whsec_...
364
+ # (atau hapus BUAYAR_PROVIDER — provider auto-dideteksi dari kredensial)
342
365
  ```
343
366
 
344
367
  ### 🏷️ Daftar Canonical Payment Methods
package/dist/cli/index.js CHANGED
@@ -30,21 +30,30 @@ var p2 = __toESM(require("@clack/prompts"));
30
30
 
31
31
  // src/cli/templates.ts
32
32
  var DOT_ENV_TEMPLATE = `# \u2500\u2500 @crediblemark/buayar \xB7 Konfigurasi \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
33
- # Provider aktif (salah satu dari 19): midtrans, duitku, ipaymu, xendit, doku,
34
- # prismalink, faspay, finpay, nicepay, oy, stripe, paypal, adyen, checkoutcom,
35
- # razorpay, square, payu, braintree, twocheckout
36
- PROVIDER_PG=midtrans
37
-
38
- # Kredensial Universal (dipetakan otomatis per provider)
39
- BUAYAR_API_KEY=your-server-key-atau-secret
33
+ # CUKUP isi blok universal di bawah. Provider aktif bisa DITENTUKAN sendiri
34
+ # (BUAYAR_PROVIDER) atau DI-AUTODETECT dari kunci kredensial yang terisi.
35
+ # Saat pindah provider, umumnya kode TIDAK berubah \u2014 cukup isi key-nya.
36
+
37
+ # (opsional) Nama provider aktif. Bila dikosongkan, otomatis dideteksi.
38
+ # midtrans | duitku | ipaymu | xendit | doku | prismalink | faspay | finpay
39
+ # nicepay | oy | stripe | paypal | adyen | checkoutcom | razorpay | square
40
+ # payu | braintree | twocheckout
41
+ # BUAYAR_PROVIDER=midtrans
42
+
43
+ # Kredensial Universal \u2014 dipetakan otomatis sesuai provider aktif.
44
+ # Isi sesuai kredensial yang diminta provider itu (umumnya: secret/key/password).
45
+ BUAYAR_API_KEY=server-key-atau-secret
40
46
  BUAYAR_MERCHANT_CODE=merchant-id-atau-username
47
+ BUAYAR_CLIENT_KEY=client-atau-public-key
48
+ BUAYAR_MERCHANT_ID=merchant-id
41
49
  BUAYAR_SANDBOX=true
42
50
 
43
51
  # Callback & Return URL
44
52
  BUAYAR_CALLBACK_URL=http://localhost:3000/api/payment/webhook
45
53
  BUAYAR_RETURN_URL=http://localhost:3000/payment/success
46
54
 
47
- # \u2500\u2500 Kredensial Spesifik Provider (isi sesuai yang aktif saja) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
55
+ # \u2500\u2500 Kredensial Spesifik Provider (opsional & lanjutan) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500
56
+ # Bisa diisi bila ingin eksplisit; bila kosong, nilai universal di atas dipakai.
48
57
  # MIDTRANS_SERVER_KEY=
49
58
  # MIDTRANS_CLIENT_KEY=
50
59
  # DUITKU_API_KEY=
@@ -76,6 +85,7 @@ BUAYAR_RETURN_URL=http://localhost:3000/payment/success
76
85
  # ADYEN_MERCHANT_ACCOUNT=
77
86
  # ADYEN_HMAC_KEY=
78
87
  # CHECKOUTCOM_SECRET_KEY=
88
+ # CHECKOUTCOM_PUBLIC_KEY=
79
89
  # CHECKOUTCOM_WEBHOOK_SECRET=
80
90
  # RAZORPAY_KEY_ID=
81
91
  # RAZORPAY_KEY_SECRET=
@@ -290,7 +300,7 @@ var README_PAYMENT_TEMPLATE = (framework, provider) => `# \u{1F4B3} Payment \u20
290
300
 
291
301
  Scaffold dibuat otomatis oleh \`buayar init\`.
292
302
 
293
- - **Provider aktif:** \`${provider}\` (ganti di \`.env\` \u2192 \`PROVIDER_PG\`)
303
+ - **Provider aktif:** \`${provider}\` (ganti di \`.env\` \u2192 \`BUAYAR_PROVIDER\`)
294
304
  - **Framework route:** \`${framework}\`
295
305
 
296
306
  ## Struktur
@@ -308,7 +318,7 @@ src/payment/
308
318
  4. Notifikasi masuk ke \`POST /api/payment/webhook\` \u2192 diverifikasi otomatis.
309
319
 
310
320
  ## Ganti Provider
311
- Ubah \`PROVIDER_PG\` + kredensial di \`.env\`. Kode \`service.ts\`/route **tidak berubah**.
321
+ Ubah \`BUAYAR_PROVIDER\` + kredensial di \`.env\`. Kode \`service.ts\`/route **tidak berubah**.
312
322
 
313
323
  > Dokumentasi lengkap: https://github.com/crediblemark-official/Buayar#readme
314
324
  `;
@@ -474,7 +484,7 @@ function printScaffoldSummary(result) {
474
484
  }
475
485
 
476
486
  // src/cli/index.ts
477
- var VERSION = "0.5.0";
487
+ var VERSION = "0.8.0";
478
488
  function parseArgs(argv) {
479
489
  const flags = [];
480
490
  const rest = [];