தரப்படுத்தப்பட்ட டிஜிட்டல் குட்ஸ் API-ஐப் பயன்படுத்தி Progressive Web Apps (PWAs)-ல் இன்-ஆப் பர்ச்சேஸ்களை ஒருங்கிணைப்பது குறித்த டெவலப்பர்களுக்கான ஒரு முழுமையான வழிகாட்டி. இதன் செயல்முறை, பாதுகாப்பு நடைமுறைகள் மற்றும் உலகளாவிய உத்திகளைக் கற்றுக்கொள்ளுங்கள்.
இணைய பணமாக்குதலைத் திறத்தல்: இன்-ஆப் பர்ச்சேஸ்களுக்கான டிஜிட்டல் குட்ஸ் API பற்றிய ஒரு ஆழமான பார்வை
பல ஆண்டுகளாக, நேட்டிவ் மொபைல் செயலிகள் பணமாக்குதலில் ஒரு தனித்துவமான நன்மையைக் கொண்டிருந்தன: ஆப்பரேட்டிங் சிஸ்டத்தின் ஆப் ஸ்டோருடன் நேரடியாக ஒருங்கிணைக்கப்பட்ட, தடையற்ற, நம்பகமான இன்-ஆப் பர்ச்சேஸ் (IAP) அமைப்புகள். இந்த எளிமைப்படுத்தப்பட்ட செயல்முறை மொபைல் செயலி பொருளாதாரத்தின் ஒரு மூலக்கல்லாக இருந்து வருகிறது. இதற்கிடையில், இணையம், அதன் இணையற்ற வீச்சை மீறி, மூன்றாம் தரப்பு பேமெண்ட் கேட்வேக்களின் ஒரு சிதறிய நிலப்பரப்புடன் போராடி வருகிறது, இது பெரும்பாலும் குறைவான ஒருங்கிணைந்த மற்றும் குறைந்த நம்பகமான பயனர் அனுபவங்களுக்கு வழிவகுக்கிறது.
இங்குதான் டிஜிட்டல் குட்ஸ் API வருகிறது. இந்த நவீன இணையத் தரம் Progressive Web Apps (PWAs)-க்கு ஒரு கேம்-சேஞ்சராகும், இது இணையம் மற்றும் நேட்டிவ் பணமாக்குதலுக்கு இடையிலான இடைவெளியைக் குறைப்பதை நோக்கமாகக் கொண்டுள்ளது. இது இணைய செயலிகள், இன்-ஆப் தயாரிப்புகள் மற்றும் பர்ச்சேஸ்களை நிர்வகிக்க, கூகிள் ப்ளே ஸ்டோர் அல்லது மைக்ரோசாப்ட் ஸ்டோர் போன்ற டிஜிட்டல் விநியோக சேவைகளுடன் தொடர்புகொள்வதற்கான ஒரு தரப்படுத்தப்பட்ட வழியை வழங்குகிறது.
இந்த முழுமையான வழிகாட்டி டெவலப்பர்கள், தயாரிப்பு மேலாளர்கள் மற்றும் தொழில்நுட்பத் தலைவர்களுக்கானது, அவர்கள் தங்களின் இணைய செயலிகளுக்கான ஒரு வலுவான IAP உத்தியைப் புரிந்துகொண்டு செயல்படுத்த விரும்புகிறார்கள். இந்த API-ஐ அதன் முக்கிய கருத்துக்கள் முதல் படிப்படியான செயல்படுத்தல் வரை நாம் ஆராய்வோம், முக்கியமான பாதுகாப்பு நடைமுறைகள் மற்றும் உலகளாவிய பார்வையாளர்களுக்கான உலகளாவிய கருத்தாய்வுகளை உள்ளடக்கியது.
அத்தியாயம் 1: டிஜிட்டல் குட்ஸ் API-ஐப் புரிந்துகொள்ளுதல்
டிஜிட்டல் குட்ஸ் API என்றால் என்ன?
சுருக்கமாக, டிஜிட்டல் குட்ஸ் API என்பது ஒரு ஜாவாஸ்கிரிப்ட் API ஆகும், இது உங்கள் இணைய செயலிக்கும் பயனரின் பேமெண்ட் வழங்குநருக்கும் இடையில் ஒரு பாலமாக செயல்படுகிறது, குறிப்பாக PWA நிறுவப்பட்ட தளத்துடன் தொடர்புடையது. உதாரணமாக, ஒரு பயனர் உங்கள் PWA-ஐ கூகிள் ப்ளே ஸ்டோரிலிருந்து நிறுவினால், டிஜிட்டல் குட்ஸ் API கூகிள் ப்ளே பில்லிங்குடன் தொடர்பு கொள்ளும்.
உங்கள் இணைய அனுபவத்திற்குள் நேரடியாக டிஜிட்டல் பொருட்களை விற்பனை செய்யும் செயல்முறையை எளிதாக்குவதே இதன் முதன்மை நோக்கமாகும். இந்த பொருட்களில் பின்வருவன அடங்கும்:
- Consumables: ஒரு முறை பயன்படுத்தக்கூடிய மற்றும் மீண்டும் வாங்கக்கூடிய பொருட்கள், அதாவது இன்-கேம் நாணயம், கூடுதல் லைஃப்கள் அல்லது பூஸ்ட்கள்.
- Non-consumables: ஒருமுறை மட்டுமே வாங்கக்கூடிய நிரந்தர பொருட்கள், பிரீமியம் அம்சத்தைத் திறப்பது, விளம்பரங்களை அகற்றுவது அல்லது ஒரு லெவல் பேக்கை வாங்குவது போன்றவை.
- Subscriptions: உள்ளடக்கம் அல்லது சேவைகளுக்கான தொடர்ச்சியான அணுகலுக்காக மீண்டும் மீண்டும் செலுத்தப்படும் கட்டணங்கள், அதாவது மாதாந்திர செய்தி சந்தா அல்லது பிரீமியம் மென்பொருள் தொகுப்பிற்கான அணுகல்.
இந்த API-ஐப் பயன்படுத்துவதன் முக்கிய நன்மைகள் பின்வருமாறு:
- எளிமைப்படுத்தப்பட்ட பயனர் அனுபவம்: பயனர்கள் தங்களின் ஏற்கனவே உள்ள, நம்பகமான ஸ்டோர் கணக்கைப் பயன்படுத்தி, பேமெண்ட் தகவல்களை மீண்டும் உள்ளிடாமல் டிஜிட்டல் பொருட்களை வாங்கலாம். இது சிக்கலைக் கணிசமாகக் குறைத்து, மாற்ற விகிதங்களை அதிகரிக்கும்.
- நம்பகமான பேமெண்ட் செயல்முறை: முழு பேமெண்ட் செயல்முறையும் அடிப்படை தளத்தால் (எ.கா., கூகிள் ப்ளே) கையாளப்படுகிறது, அதன் பாதுகாப்பு, பரிச்சயம் மற்றும் சேமிக்கப்பட்ட பேமெண்ட் முறைகளைப் பயன்படுத்துகிறது.
- குறைக்கப்பட்ட மேம்பாட்டுச் சுமை: வெவ்வேறு பிராந்தியங்கள் அல்லது விருப்பங்களுக்காக பல பேமெண்ட் செயலிகளை ஒருங்கிணைப்பதற்குப் பதிலாக, டெவலப்பர்கள் உலாவி மற்றும் அடிப்படைத் தளம் நிர்வகிக்கும் ஒற்றை, தரப்படுத்தப்பட்ட API-ஐப் பயன்படுத்தலாம்.
முக்கிய கருத்துக்கள் மற்றும் சொற்களஞ்சியம்
API-ஐ திறம்பட பயன்படுத்த, அதன் முக்கிய கூறுகளைப் புரிந்துகொள்வது அவசியம்:
- DigitalGoodsService: இது API-க்கான முக்கிய நுழைவுப் புள்ளி. பேமெண்ட் வழங்குநருடன் தொடர்பு கொள்ள இந்த சேவையின் ஒரு நிகழ்வை நீங்கள் பெறுவீர்கள்.
- SKU (Stock Keeping Unit): நீங்கள் விற்கும் ஒவ்வொரு டிஜிட்டல் தயாரிப்புக்குமான ஒரு தனிப்பட்ட அடையாளங்காட்டி. உங்கள் பேமெண்ட் வழங்குநரின் டெவலப்பர் கன்சோலில் (எ.கா., கூகிள் ப்ளே கன்சோல்) இந்த SKU-க்களை நீங்கள் வரையறுக்கிறீர்கள்.
- `getDetails(skus)`: உங்கள் தயாரிப்புகள் பற்றிய விரிவான தகவல்களைப் பெறுவதற்கான ஒரு முறை, அதாவது தலைப்பு, விளக்கம், மற்றும் மிக முக்கியமாக, தற்போதைய பயனருக்கான உள்ளூர் விலை மற்றும் நாணயம்.
- Purchase Token: ஒரு பரிவர்த்தனை முடிந்ததைக் குறிக்கும் ஒரு தனித்துவமான, பாதுகாப்பான சரம். பின்தள சரிபார்ப்புக்கு இந்த டோக்கன் மிக முக்கியமானது.
- `listPurchases()`: பயனரின் செயலில் உள்ள, பயன்படுத்தப்படாத பர்ச்சேஸ்களின் பட்டியலை மீட்டெடுக்கிறது. ஒரு பயனர் புதிய சாதனத்தில் உள்நுழையும்போது பிரீமியம் அம்சங்களுக்கான அணுகலை மீட்டெடுப்பதற்கு இது அவசியம்.
- `consume(purchaseToken)`: ஒரு முறை பயன்படுத்தக்கூடிய பொருளைப் பயன்படுத்தப்பட்டதாகக் குறிக்கிறது. பயன்படுத்தப்பட்ட பிறகு, பயனர் அந்தப் பொருளை மீண்டும் வாங்கலாம். இன்-கேம் நாணயம் போன்ற பொருட்களுக்கு இது முக்கியமானது.
- `acknowledge(purchaseToken)`: பயன்படுத்தப்படாத அல்லது சந்தா பர்ச்சேஸ் வெற்றிகரமாகச் செயல்படுத்தப்பட்டு பயனருக்கு வழங்கப்பட்டதை உறுதிப்படுத்துகிறது. ஒரு குறிப்பிட்ட காலக்கெடுவுக்குள் (எ.கா., கூகிள் ப்ளேவில் மூன்று நாட்கள்) ஒரு பர்ச்சேஸ் ஏற்கப்படவில்லை என்றால், தளம் தானாகவே பயனருக்கு பணத்தைத் திரும்ப அளிக்கலாம்.
பாரம்பரிய இணைய பேமெண்ட்களிலிருந்து இது எவ்வாறு வேறுபடுகிறது
டிஜிட்டல் குட்ஸ் API-ஐ மற்ற இணைய பேமெண்ட் தொழில்நுட்பங்களிலிருந்து வேறுபடுத்துவது முக்கியம்:
- vs. Payment Request API: பேமெண்ட் ரிக்வெஸ்ட் API பரந்த அளவிலான பரிவர்த்தனைகளுக்காக வடிவமைக்கப்பட்டுள்ளது, இதில் பௌதீகப் பொருட்கள் மற்றும் சேவைகளும் அடங்கும். இது செக்-அவுட் *செயல்முறையை* தரப்படுத்துகிறது, ஆனால் உண்மையான பேமெண்ட்டைக் கையாள Stripe அல்லது Adyen போன்ற ஒரு பேமெண்ட் செயலியை நீங்கள் இன்னும் ஒருங்கிணைக்க வேண்டும். இதற்கு மாறாக, டிஜிட்டல் குட்ஸ் API குறிப்பாக *டிஜிட்டல் பொருட்களுக்காக* உள்ளது மற்றும் ஆப் ஸ்டோரின் *பில்லிங் அமைப்புடன்* நேரடியாக ஒருங்கிணைக்கப்படுகிறது. உண்மையில், டிஜிட்டல் குட்ஸ் API ஒரு குறிப்பிட்ட SKU-க்கான பர்ச்சேஸ் செயல்முறையைத் தொடங்க, பேமெண்ட் ரிக்வெஸ்ட் API-ஐப் பின்னணியில் அடிக்கடி பயன்படுத்துகிறது.
- vs. Third-Party SDKs (Stripe, PayPal, etc.): இந்த சேவைகள் இணையத்தில் நேரடியாக நுகர்வோருக்கு பேமெண்ட் செய்வதற்கு சிறந்தவை. இருப்பினும், பயனர்கள் பேமெண்ட் விவரங்களை உள்ளிட (அல்லது ஒரு தனி கணக்கில் உள்நுழைய) வேண்டும் மற்றும் தளத்தின் ஆப் ஸ்டோரிலிருந்து சுயாதீனமாக செயல்பட வேண்டும். டிஜிட்டல் குட்ஸ் API, ஸ்டோருடனான பயனரின் முன்பே இருக்கும் பில்லிங் உறவைப் பயன்படுத்துகிறது, இது ஒரு மேலும் ஒருங்கிணைந்த, 'நேட்டிவ்-போன்ற' அனுபவத்தை உருவாக்குகிறது.
அத்தியாயம் 2: செயல்படுத்தல் பயணம்: ஒரு படிப்படியான வழிகாட்டி
ஒரு PWA-இல் டிஜிட்டல் குட்ஸ் API-ஐ ஒருங்கிணைப்பதற்கான நடைமுறைப் படிகளைப் பார்ப்போம். இந்த வழிகாட்டி உங்களிடம் ஒரு அடிப்படை PWA கட்டமைப்பு உள்ளது என்று கருதுகிறது.
முன்தேவைகள் மற்றும் அமைப்பு
- ஒரு செயல்படும் PWA: உங்கள் இணைய செயலி நிறுவக்கூடியதாக இருக்க வேண்டும் மற்றும் ஒரு சர்வீஸ் வொர்க்கர் மற்றும் ஒரு வெப் ஆப் மேனிஃபெஸ்ட் உட்பட PWA தகுதிகளை பூர்த்தி செய்ய வேண்டும்.
- Trusted Web Activity (TWA): உங்கள் PWA-ஐ கூகிள் ப்ளே போன்ற ஒரு ஸ்டோரில் வெளியிட, நீங்கள் அதை ஒரு Trusted Web Activity-இல் இணைக்க வேண்டும். இது உங்கள் டொமைனின் உரிமையை நிரூபிக்க ஒரு டிஜிட்டல் அசெட் லிங்க்ஸ் கோப்பை அமைப்பதை உள்ளடக்குகிறது.
- ஸ்டோர் கணக்கு மற்றும் தயாரிப்பு கட்டமைப்பு: இலக்கு ஸ்டோருக்கான (எ.கா., கூகிள் ப்ளே கன்சோல்) ஒரு டெவலப்பர் கணக்கு உங்களிடம் இருக்க வேண்டும் மற்றும் உங்கள் டிஜிட்டல் தயாரிப்புகளை (SKUs) அவற்றின் ஐடிகள், வகைகள் (consumable, non-consumable, subscription), விலைகள் மற்றும் விளக்கங்கள் உட்பட கட்டமைக்க வேண்டும்.
படி 1: அம்சம் கண்டறிதல்
எல்லா உலாவிகளும் அல்லது தளங்களும் டிஜிட்டல் குட்ஸ் API-ஐ ஆதரிக்காது. அதைப் பயன்படுத்த முயற்சிக்கும் முன் அதன் இருப்பை சரிபார்ப்பதே உங்கள் முதல் படியாக இருக்க வேண்டும். இது உங்கள் செயலி ஆதரிக்கப்படாத சூழல்களுக்கு ஒரு சரியான மாற்று வழியை வழங்குவதை உறுதி செய்கிறது.
if ('getDigitalGoodsService' in window) {
// The Digital Goods API is available!
console.log('Digital Goods API supported.');
// Proceed with initialization.
} else {
// The API is not available.
console.log('Digital Goods API not supported.');
// Hide IAP purchase buttons or show an alternative message.
}
படி 2: சேவையுடன் இணைத்தல்
நீங்கள் ஆதரவை உறுதிசெய்தவுடன், நீங்கள் `DigitalGoodsService`-க்கான ஒரு குறிப்பைப் பெற வேண்டும். இது பேமெண்ட் வழங்குநருக்கான அடையாளங்காட்டியுடன் `window.getDigitalGoodsService()`-ஐ அழைப்பதன் மூலம் செய்யப்படுகிறது. கூகிள் ப்ளே பில்லிங்கிற்கு, அடையாளங்காட்டி `"https://play.google.com/billing"` ஆகும்.
async function initializeDigitalGoods() {
if (!('getDigitalGoodsService' in window)) {
return null;
}
try {
const service = await window.getDigitalGoodsService("https://play.google.com/billing");
if (service === null) {
console.log('No payment provider available.');
return null;
}
return service;
} catch (error) {
console.error('Error connecting to Digital Goods Service:', error);
return null;
}
}
// Usage:
const digitalGoodsService = await initializeDigitalGoods();
படி 3: தயாரிப்பு விவரங்களைப் பெறுதல்
நீங்கள் ஒரு பர்ச்சேஸ் பொத்தானைக் காண்பிப்பதற்கு முன், தயாரிப்பின் விவரங்களைக் காட்ட வேண்டும், குறிப்பாக அதன் உள்ளூர்மயமாக்கப்பட்ட விலை. விலைகளை ஹார்ட்கோட் செய்வது ஒரு மோசமான நடைமுறை, ஏனெனில் அது வெவ்வேறு நாணயங்கள், பிராந்திய விலையிடல் அல்லது விற்பனை வரிகளைக் கணக்கில் எடுத்துக்கொள்ளாது. இந்தத் தகவலை நேரடியாக பேமெண்ட் வழங்குநரிடமிருந்து பெற `getDetails()` முறையைப் பயன்படுத்தவும்.
async function loadProductDetails(service, skus) {
if (!service) return;
try {
const details = await service.getDetails(skus); // skus is an array of strings, e.g., ['premium_upgrade', '100_coins']
if (details.length === 0) {
console.log('No products found for the given SKUs.');
return;
}
for (const product of details) {
console.log(`Product ID: ${product.itemId}`);
console.log(`Title: ${product.title}`);
console.log(`Price: ${product.price.value} ${product.price.currency}`);
// Now, update your UI with this information
const button = document.getElementById(`purchase-${product.itemId}`);
button.querySelector('.price').textContent = `${product.price.value} ${product.price.currency}`;
}
} catch (error) {
console.error('Failed to fetch product details:', error);
}
}
// Usage:
const mySkus = ['remove_ads', 'pro_subscription_monthly'];
await loadProductDetails(digitalGoodsService, mySkus);
படி 4: ஒரு பர்ச்சேஸைத் தொடங்குதல்
பர்ச்சேஸ் செயல்முறை நிலையான பேமெண்ட் ரிக்வெஸ்ட் API-ஐப் பயன்படுத்தித் தொடங்கப்படுகிறது. முக்கிய வேறுபாடு என்னவென்றால், பாரம்பரிய பேமெண்ட் முறைகளை வழங்குவதற்குப் பதிலாக, நீங்கள் விற்க விரும்பும் டிஜிட்டல் பொருளின் SKU-ஐ அனுப்புகிறீர்கள்.
async function purchaseProduct(sku) {
try {
// Define the payment method with the SKU
const paymentMethod = [{
supportedMethods: "https://play.google.com/billing",
data: {
sku: sku,
}
}];
// Standard Payment Request API details
const paymentDetails = {
total: {
label: `Total`,
amount: { currency: 'USD', value: '0' } // The price is determined by the SKU, this can be a placeholder
}
};
// Create and show the payment request
const request = new PaymentRequest(paymentMethod, paymentDetails);
const paymentResponse = await request.show();
// The purchase was successful on the client-side
const { purchaseToken } = paymentResponse.details;
console.log(`Purchase successful! Token: ${purchaseToken}`);
// IMPORTANT: Now, verify this token on your backend
await verifyPurchaseOnBackend(purchaseToken);
// After backend verification, call consume() or acknowledge() if needed
await paymentResponse.complete('success');
} catch (error) {
console.error('Purchase failed:', error);
if (paymentResponse) {
await paymentResponse.complete('fail');
}
}
}
// Usage when a user clicks a button:
document.getElementById('purchase-pro_subscription_monthly').addEventListener('click', () => {
purchaseProduct('pro_subscription_monthly');
});
படி 5: பர்ச்சேஸ்களை நிர்வகித்தல் (பரிவர்த்தனைக்குப் பின்)
ஒரு வெற்றிகரமான கிளைன்ட்-சைட் பரிவர்த்தனை கதையின் பாதி மட்டுமே. உரிமையை வழங்கவும், பரிவர்த்தனை சரியாகப் பதிவு செய்யப்பட்டுள்ளதை உறுதி செய்யவும் நீங்கள் இப்போது பர்ச்சேஸை நிர்வகிக்க வேண்டும்.
பர்ச்சேஸ்களை மீட்டெடுத்தல்: பயனர்கள் தங்கள் பர்ச்சேஸ்கள் அவர்களின் எல்லா சாதனங்களிலும் கிடைக்கும் என்று எதிர்பார்க்கிறார்கள். ஒரு பயனர் உங்கள் செயலியைத் திறக்கும்போது, நீங்கள் ஏற்கனவே உள்ள உரிமைகளைச் சரிபார்க்க வேண்டும்.
async function restorePurchases(service) {
if (!service) return;
try {
const existingPurchases = await service.listPurchases();
for (const purchase of existingPurchases) {
console.log(`Restoring purchase for SKU: ${purchase.itemId}`);
// Verify each purchase token on your backend to prevent fraud
// and grant the user the corresponding feature.
await verifyPurchaseOnBackend(purchase.purchaseToken);
}
} catch (error) {
console.error('Failed to restore purchases:', error);
}
}
// Call this on app load for a signed-in user
await restorePurchases(digitalGoodsService);
பயன்படுத்துதல் மற்றும் ஏற்றுக்கொள்தல்: இது ஒரு முக்கியமான படியாகும், இது நீங்கள் பரிவர்த்தனையைச் செயல்படுத்திவிட்டீர்கள் என்பதை பேமெண்ட் வழங்குநருக்குத் தெரிவிக்கிறது. அவ்வாறு செய்யத் தவறினால் தானியங்கி ரீஃபண்ட்கள் ஏற்படலாம்.
- `consume()`: மீண்டும் வாங்கக்கூடிய ஒரு முறை தயாரிப்புகளுக்குப் பயன்படுத்தவும். பயன்படுத்தப்பட்டவுடன், பொருள் `listPurchases()` முடிவிலிருந்து அகற்றப்படும், மேலும் பயனர் அதை மீண்டும் வாங்கலாம்.
- `acknowledge()`: பயன்படுத்தப்படாத மற்றும் புதிய சந்தாக்களுக்குப் பயன்படுத்தவும். நீங்கள் பொருளை வழங்கியுள்ளீர்கள் என்பதை இது உறுதிப்படுத்துகிறது. இது ஒரு பர்ச்சேஸ் டோக்கனுக்கு ஒரு முறை செய்யப்படும் செயல்.
// This should be called AFTER successful backend verification
async function handlePostPurchase(service, purchaseToken, isConsumable) {
if (!service) return;
try {
if (isConsumable) {
await service.consume(purchaseToken);
console.log('Purchase consumed successfully.');
} else {
await service.acknowledge(purchaseToken, 'developer_payload_string_optional');
console.log('Purchase acknowledged successfully.');
}
} catch (error) {
console.error('Error handling post-purchase action:', error);
}
}
அத்தியாயம் 3: பின்தள ஒருங்கிணைப்பு மற்றும் பாதுகாப்பு சிறந்த நடைமுறைகள்
பர்ச்சேஸ் சரிபார்ப்புக்கு கிளைன்ட்-சைட் குறியீட்டை மட்டுமே நம்பியிருப்பது ஒரு பெரிய பாதுகாப்பு ஆபத்து. ஒரு தீங்கிழைக்கும் பயனர் பணம் செலுத்தாமல் தங்களுக்கு பிரீமியம் அம்சங்களை வழங்க ஜாவாஸ்கிரிப்டை எளிதில் கையாள முடியும். உங்கள் பின்தள சேவையகம் பயனர் உரிமைகளுக்கான ஒரே உண்மையான ஆதாரமாக இருக்க வேண்டும்.
பின்தள சரிபார்ப்பு ஏன் தவிர்க்க முடியாதது
- மோசடித் தடுப்பு: இது ஒரு கிளைன்டிடமிருந்து பெறப்பட்ட பர்ச்சேஸ் டோக்கன் முறையானது மற்றும் உண்மையான பரிவர்த்தனைக்காக உண்மையான பேமெண்ட் வழங்குநரால் உருவாக்கப்பட்டது என்பதை உறுதிப்படுத்துகிறது.
- நம்பகமான உரிமை மேலாண்மை: கிளைன்ட் அல்ல, உங்கள் சேவையகம் ஒரு பயனர் எந்த அம்சங்களை அணுகலாம் என்பதைக் கண்காணிப்பதற்குப் பொறுப்பாக இருக்க வேண்டும். இது சேதப்படுத்துவதைத் தடுக்கிறது மற்றும் சாதனங்கள் முழுவதும் நிலைத்தன்மையை உறுதி செய்கிறது.
- ரீஃபண்ட்கள் மற்றும் சார்ஜ்பேக்குகளைக் கையாளுதல்: பேமெண்ட் வழங்குநர் API-கள் ரீஃபண்ட்கள் போன்ற வாழ்க்கைச் சுழற்சி நிகழ்வுகள் பற்றி உங்கள் பின்தளத்திற்குத் தெரிவிக்க முடியும், இது தொடர்புடைய டிஜிட்டல் பொருளுக்கான அணுகலை ரத்து செய்ய உங்களை அனுமதிக்கிறது.
சரிபார்ப்பு செயல்முறை
கீழேயுள்ள வரைபடம் ஒரு பாதுகாப்பான சரிபார்ப்பு செயல்முறையை விளக்குகிறது:
கிளைன்ட் செயலி → (1. பர்ச்சேஸ் டோக்கனை அனுப்புகிறது) → உங்கள் பின்தள சேவையகம் → (2. டோக்கனைச் சரிபார்க்கிறது) → பேமெண்ட் வழங்குநர் API (எ.கா., கூகிள் ப்ளே டெவலப்பர் API) → (3. சரிபார்ப்பு முடிவைத் தருகிறது) → உங்கள் பின்தள சேவையகம் → (4. உரிமையை வழங்கி உறுதிப்படுத்துகிறது) → கிளைன்ட் செயலி
- கிளைன்ட்-சைட் செயலி ஒரு பர்ச்சேஸை முடித்து ஒரு `purchaseToken`-ஐப் பெறுகிறது.
- கிளைன்ட் இந்த `purchaseToken`-ஐ உங்கள் பாதுகாப்பான பின்தள சேவையகத்திற்கு அனுப்புகிறது.
- உங்கள் பின்தள சேவையகம் பேமெண்ட் வழங்குநரின் சரிபார்ப்பு எண்ட்பாயிண்டிற்கு (எ.கா., கூகிள் ப்ளே டெவலப்பர் API-இன் `purchases.products.get` அல்லது `purchases.subscriptions.get` எண்ட்பாயிண்ட்) ஒரு சர்வர்-டு-சர்வர் API அழைப்பைச் செய்கிறது, டோக்கனை அனுப்புகிறது.
- பேமெண்ட் வழங்குநர் பர்ச்சேஸின் நிலையுடன் (எ.கா., வாங்கப்பட்டது, நிலுவையில் உள்ளது, ரத்து செய்யப்பட்டது) பதிலளிக்கிறது.
- பர்ச்சேஸ் செல்லுபடியாகும் என்றால், உங்கள் பின்தளம் உங்கள் தரவுத்தளத்தில் பயனரின் கணக்கைப் புதுப்பித்து உரிமையை வழங்குகிறது (எ.கா., `user.isPremium = true` என அமைக்கிறது).
- உங்கள் பின்தளம் கிளைன்டிற்கு ஒரு வெற்றிச் செய்தியுடன் பதிலளிக்கிறது. இப்போது மட்டுமே கிளைன்ட் `consume()` அல்லது `acknowledge()`-ஐ அழைத்து UI-ஐப் புதுப்பிக்க வேண்டும்.
சந்தாக்கள் மற்றும் நிகழ்நேர அறிவிப்புகளைக் கையாளுதல்
சந்தாக்கள் ஒரு சிக்கலான வாழ்க்கைச் சுழற்சியைக் கொண்டுள்ளன (புதுப்பித்தல், ரத்து செய்தல், சலுகை காலம், இடைநிறுத்தம்). `listPurchases()`-ஐ நம்பியிருப்பது திறனற்றது. நிகழ்நேர டெவலப்பர் அறிவிப்புகள் (RTDN) அல்லது வெப்ஹூக்குகளைப் பயன்படுத்துவதே சிறந்த நடைமுறை.
உங்கள் பின்தள சேவையகத்தில் ஒரு எண்ட்பாயிண்டை நீங்கள் கட்டமைக்கிறீர்கள், ஒரு சந்தாவின் நிலை மாறும்போதெல்லாம் பேமெண்ட் வழங்குநர் அதை அழைப்பார். இது, ஒரு சந்தா ரத்து செய்யப்படும்போது அணுகலை ரத்து செய்வது அல்லது புதுப்பித்தல் முயற்சியின்போது பேமெண்ட் தோல்வியைக் கையாள்வது போன்ற உரிமைகளை முன்கூட்டியே நிர்வகிக்க உங்களை அனுமதிக்கிறது.
அத்தியாயம் 4: மேம்பட்ட தலைப்புகள் மற்றும் உலகளாவிய கருத்தாய்வுகள்
பல பேமெண்ட் வழங்குநர்களை ஆதரித்தல்
கூகிள் ப்ளே ஸ்டோர் ஒரு முக்கிய வழங்குநராக இருந்தாலும், டிஜிட்டல் குட்ஸ் API என்பது மைக்ரோசாப்ட் ஸ்டோர் போன்ற மற்றவர்களுடன் வேலை செய்ய வடிவமைக்கப்பட்ட ஒரு தரமாகும். ஒரு உண்மையான உலகளாவிய PWA-ஐ உருவாக்க, உங்கள் குறியீட்டை வழங்குநர்-அஞ்ஞானியாக வடிவமைக்க வேண்டும்.
// A conceptual approach to support multiple stores
const SUPPORTED_PROVIDERS = [
'https://play.google.com/billing',
'https://apps.microsoft.com/store/billing'
];
async function getFirstSupportedService() {
if (!('getDigitalGoodsService' in window)) return null;
for (const providerId of SUPPORTED_PROVIDERS) {
try {
const service = await window.getDigitalGoodsService(providerId);
if (service) {
console.log(`Connected to: ${providerId}`);
return service; // Return the first one that connects
}
} catch (error) {
// Ignore errors for providers that are not available
console.log(`Could not connect to ${providerId}`);
}
}
return null;
}
உள்ளூர்மயமாக்கல் மற்றும் சர்வதேசமயமாக்கல்
டிஜிட்டல் குட்ஸ் API-இன் ஒரு முக்கிய பலம் அதன் உள்ளமைக்கப்பட்ட உள்ளூர்மயமாக்கல் ஆதரவு. `getDetails()` முறை தானாகவே தயாரிப்பு தலைப்புகள், விளக்கங்கள் மற்றும் விலைகளை பயனரின் உள்ளூர் நாணயம் மற்றும் மொழியில் வழங்குகிறது, நீங்கள் ஸ்டோரின் கன்சோலில் கட்டமைத்தபடி. உங்கள் UI-இல் விலைகளைக் காட்ட எப்போதும் API-ஆல் வழங்கப்படும் விலை ஆப்ஜெக்டைப் பயன்படுத்தவும். அவற்றை ஒருபோதும் ஹார்ட்கோட் செய்யாதீர்கள் அல்லது காட்சி நோக்கங்களுக்காக உங்கள் சொந்த நாணய மாற்றங்களைச் செய்யாதீர்கள்.
பயனர் அனுபவம் (UX) சிறந்த நடைமுறைகள்
- வெளிப்படைத்தன்மை: முழு விலையையும், சந்தாக்களுக்கு, பில்லிங் அதிர்வெண்ணையும் (`/மாதம்`, `/ஆண்டு`) தெளிவாகக் காட்டவும்.
- எளிமை: பர்ச்சேஸ் பொத்தான்களை முக்கியமாகக் காட்டி, செயல்முறையை முடிந்தவரை எளிதாக்குங்கள். API பேமெண்ட் ஷீட்டின் கடினமான வேலையைக் கையாளுகிறது.
- பர்ச்சேஸ்களை மீட்டெடுக்கவும்: உங்கள் செயலியின் அமைப்புகளில் எளிதில் அணுகக்கூடிய "பர்ச்சேஸ்களை மீட்டெடுக்கவும்" பொத்தானை வழங்கவும். இது பயனர்களுக்கு அவர்கள் தங்கள் பர்ச்சேஸ்களை இழக்க மாட்டார்கள் என்ற நம்பிக்கையை அளிக்கிறது.
- பின்னூட்டம்: ஒவ்வொரு கட்டத்திலும் பயனருக்குத் தெளிவான பின்னூட்டத்தை வழங்கவும்: பர்ச்சேஸ் செயல்பாட்டில் இருக்கும்போது, அது வெற்றிபெறும்போது, குறிப்பாக அது தோல்வியடையும்போது.
முடிவுரை: இணைய பணமாக்குதலின் எதிர்காலம்
டிஜிட்டல் குட்ஸ் API, நேட்டிவ் செயலிகளுக்கும் Progressive Web Apps-க்கும் இடையிலான போட்டியை சமன் செய்வதில் ஒரு குறிப்பிடத்தக்க படியை பிரதிபலிக்கிறது. இன்-ஆப் பர்ச்சேஸ்களுக்கு ஒரு தரப்படுத்தப்பட்ட, பாதுகாப்பான மற்றும் பயனர் நட்பு பொறிமுறையை வழங்குவதன் மூலம், இது இணைய டெவலப்பர்களுக்கு திறந்த இணையத்தில் நேரடியாக நிலையான வணிக மாதிரிகளை உருவாக்க அதிகாரம் அளிக்கிறது.
இந்த API-ஐ ஏற்றுக்கொள்வதன் மூலமும், வலுவான பின்தள சரிபார்ப்புடன் பாதுகாப்பு சிறந்த நடைமுறைகளைப் பின்பற்றுவதன் மூலமும், பயனர்களை மகிழ்விக்கும் மற்றும் வருவாயை அதிகரிக்கும் தடையற்ற பணமாக்குதல் அனுபவங்களை நீங்கள் உருவாக்கலாம். PWA பயன்பாடு அதிகரித்து, மேலும் டிஜிட்டல் ஸ்டோர்கள் இந்தத் தரத்தை ஆதரிக்கும்போது, டிஜிட்டல் குட்ஸ் API ஒவ்வொரு நவீன இணைய டெவலப்பரின் கருவிப்பெட்டியிலும் ஒரு அவசியமான கருவியாக மாறும், இது உலகளாவிய பார்வையாளர்களுக்காக இணைய தளத்தின் வணிகத் திறனை உண்மையாகத் திறக்கும்.