इन-ऐप खरीदारी रसीदों को सत्यापित करना
इन-ऐप खरीदारी सत्यापन यह सुनिश्चित करने के लिए महत्वपूर्ण है कि उपयोगकर्ताओं ने वैध खरीदारी की है और उन्हें पहुंच प्रदान की है प्रीमियम सामग्री या कार्यक्षमता। दस्तावेज़ीकरण की उपलब्धता के बावजूद, प्रभावी रसीद सत्यापन को लागू करना चुनौतीपूर्ण हो सकता है।
एक दृष्टिकोण में रसीद डेटा को PHP सर्वर पर भेजना शामिल है, जो सत्यापन के लिए इसे ऐप्पल ऐप स्टोर पर भेजता है। एक सफल प्रतिक्रिया खरीदारी की वैधता की पुष्टि करती है, जिससे आप अपने सर्वर पर लेनदेन को रिकॉर्ड करने के लिए आगे बढ़ सकते हैं।
हालांकि, यदि रसीद सत्यापन के दौरान आपको "अमान्य स्थिति" प्रतिक्रिया मिलती है, तो इसमें किसी भी टाइपो की जांच करना आवश्यक है आपका कोड. निम्नलिखित नमूना कोड एक समाधान प्रदान करता है:
- (BOOL)verifyReceipt:(SKPaymentTransaction *)transaction { NSString *jsonObjectString = [self encode:(uint8_t *)transaction.transactionReceipt.bytes length:transaction.transactionReceipt.length]; NSString *completeString = [NSString stringWithFormat:@"http://url-for-your-php?receipt=%@", jsonObjectString]; NSURL *urlForValidation = [NSURL URLWithString:completeString]; NSMutableURLRequest *validationRequest = [[NSMutableURLRequest alloc] initWithURL:urlForValidation]; [validationRequest setHTTPMethod:@"GET"]; NSData *responseData = [NSURLConnection sendSynchronousRequest:validationRequest returningResponse:nil error:nil]; [validationRequest release]; NSString *responseString = [[NSString alloc] initWithData:responseData encoding: NSUTF8StringEncoding]; NSInteger response = [responseString integerValue]; [responseString release]; return (response == 0); } - (NSString *)encode:(const uint8_t *)input length:(NSInteger)length { static char table[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 /="; NSMutableData *data = [NSMutableData dataWithLength:((length 2) / 3) * 4]; uint8_t *output = (uint8_t *)data.mutableBytes; for (NSInteger i = 0; i > 18) & 0x3F]; output[index 1] = table[(value >> 12) & 0x3F]; output[index 2] = (i 1) > 6) & 0x3F] : '='; output[index 3] = (i 2) > 0) & 0x3F] : '='; } return [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease]; }
इसके अतिरिक्त, रसीद सत्यापन को संभालने और लेनदेन को रिकॉर्ड करने के लिए आपके सर्वर पर निम्नलिखित PHP कोड का उपयोग किया जा सकता है:
$receipt = json_encode(array("receipt-data" => $_GET["receipt"])); // NOTE: use "buy" vs "sandbox" in production. $url = "https://sandbox.itunes.apple.com/verifyReceipt"; $response_json = call-your-http-post-here($url, $receipt); $response = json_decode($response_json); // Save the data here! echo $response->status;
"call-your-http-post-here" को अपने पसंदीदा HTTP पोस्ट मैकेनिज्म से बदलना याद रखें। इस कोड को लागू करके और इसकी सटीकता सुनिश्चित करके, आप रसीद खरीद को प्रभावी ढंग से सत्यापित कर सकते हैं और विश्वास के साथ इन-ऐप लेनदेन का प्रबंधन कर सकते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3