b42ff297eb
- Prevent duplicate piece shapes when generating next pieces - Enhanced randomTetromino() with excludeShape parameter - Update piece placement logic to avoid visual duplicates - Improve initial state generation for both players - Add P1 and P2 next piece previews in 2P mode
166 lines
4.7 KiB
TypeScript
166 lines
4.7 KiB
TypeScript
/**
|
|
* PAYMENT CONFIGURATION
|
|
*
|
|
* Edit this file to configure all payment methods.
|
|
* This is the only file you need to modify for production.
|
|
*/
|
|
|
|
export const CONFIG = {
|
|
// ============================================
|
|
// STORE SETTINGS
|
|
// ============================================
|
|
store: {
|
|
name: "Secure Market",
|
|
currency: "USD",
|
|
currencySymbol: "$",
|
|
supportEmail: "support@example.com",
|
|
pgpKey: "0x1234ABCD5678EFGH",
|
|
},
|
|
|
|
// ============================================
|
|
// PRODUCTS
|
|
// ============================================
|
|
products: [
|
|
{
|
|
id: "prod_001",
|
|
name: "Digital Product #001",
|
|
description: "Secure digital delivery. Encrypted files with lifetime access.",
|
|
priceFiat: 25.00,
|
|
priceCrypto: {
|
|
btc: "0.001",
|
|
eth: "0.015",
|
|
ltc: "0.3",
|
|
xmr: "0.15",
|
|
},
|
|
image: "📦",
|
|
downloadUrl: "/downloads/product-001.zip", // After payment verification
|
|
},
|
|
{
|
|
id: "prod_002",
|
|
name: "Premium Bundle",
|
|
description: "Complete package with all features and priority support.",
|
|
priceFiat: 99.00,
|
|
priceCrypto: {
|
|
btc: "0.004",
|
|
eth: "0.06",
|
|
ltc: "1.2",
|
|
xmr: "0.6",
|
|
},
|
|
image: "💎",
|
|
downloadUrl: "/downloads/premium-bundle.zip",
|
|
},
|
|
],
|
|
|
|
// ============================================
|
|
// PAYPAL / CARD PAYMENTS
|
|
// Get your Client ID: https://developer.paypal.com/dashboard/applications
|
|
// ============================================
|
|
paypal: {
|
|
enabled: true,
|
|
clientId: "YOUR_PAYPAL_CLIENT_ID", // Replace with your PayPal Client ID
|
|
currency: "USD",
|
|
// PayPal supports: paypal, card, credit, venmo, paylater, bancontact, giropay, ideal, mybank, p24, sepa, sofort
|
|
enabledFunding: ["paypal", "card", "venmo", "paylater"],
|
|
},
|
|
|
|
// ============================================
|
|
// STRIPE (for Apple Pay / Google Pay)
|
|
// Get your keys: https://dashboard.stripe.com/apikeys
|
|
// ============================================
|
|
stripe: {
|
|
enabled: true,
|
|
publishableKey: "YOUR_STRIPE_PUBLISHABLE_KEY", // pk_live_... or pk_test_...
|
|
// For server-side (edge function), add STRIPE_SECRET_KEY to your secrets
|
|
},
|
|
|
|
// ============================================
|
|
// CRYPTOCURRENCY
|
|
// ============================================
|
|
crypto: {
|
|
enabled: true,
|
|
// Replace with YOUR wallet addresses
|
|
wallets: {
|
|
btc: {
|
|
address: "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
|
|
enabled: true,
|
|
},
|
|
eth: {
|
|
address: "0x71C7656EC7ab88b098defB751B7401B5f6d8976F",
|
|
enabled: true,
|
|
},
|
|
ltc: {
|
|
address: "ltc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
|
|
enabled: true,
|
|
},
|
|
xmr: {
|
|
address: "888tNkZrPN6JsEgekjMnABU4TBzc2Dt29EPAvkRxbANsAnjyPbb3iQ1YBRk1UXcdRsiKc9dhwMVgN5S9cQUiyoogDavup3H",
|
|
enabled: true,
|
|
},
|
|
},
|
|
// Auto-detection requires backend (Supabase edge function)
|
|
autoDetection: {
|
|
enabled: false,
|
|
pollIntervalMs: 15000,
|
|
supabaseUrl: "https://your-project.supabase.co",
|
|
},
|
|
},
|
|
|
|
// ============================================
|
|
// DIRECT PAYMENTS (Manual Verification)
|
|
// ============================================
|
|
direct: {
|
|
enabled: true,
|
|
venmo: {
|
|
enabled: true,
|
|
username: "@YourVenmoUsername",
|
|
link: "https://venmo.com/u/YourVenmoUsername",
|
|
},
|
|
cashapp: {
|
|
enabled: true,
|
|
cashtag: "$YourCashTag",
|
|
link: "https://cash.app/$YourCashTag",
|
|
},
|
|
zelle: {
|
|
enabled: true,
|
|
email: "payments@example.com",
|
|
phone: "+1234567890",
|
|
},
|
|
bankTransfer: {
|
|
enabled: true,
|
|
bankName: "Your Bank",
|
|
accountName: "Your Business Name",
|
|
accountNumber: "1234567890",
|
|
routingNumber: "021000021",
|
|
swift: "YOURSWIFT",
|
|
iban: "US00BANK0000001234567890",
|
|
},
|
|
giftCards: {
|
|
enabled: true,
|
|
accepted: ["Amazon", "Steam", "iTunes", "Google Play", "Visa", "Mastercard"],
|
|
},
|
|
},
|
|
|
|
// ============================================
|
|
// CAPTCHA SETTINGS
|
|
// ============================================
|
|
captcha: {
|
|
enabled: true,
|
|
maxAttempts: 3,
|
|
challengeTypes: ["math", "text", "reverse", "count"],
|
|
},
|
|
|
|
// ============================================
|
|
// NOTIFICATIONS (Webhooks)
|
|
// Called when payment is submitted for verification
|
|
// ============================================
|
|
webhooks: {
|
|
onPaymentSubmitted: "", // Optional: https://your-server.com/api/payment-submitted
|
|
onPaymentVerified: "", // Optional: https://your-server.com/api/payment-verified
|
|
},
|
|
};
|
|
|
|
// Type exports for TypeScript
|
|
export type Product = typeof CONFIG.products[0];
|
|
export type CryptoType = keyof typeof CONFIG.crypto.wallets;
|
|
|