मैं अपने पहले इन-ऐप क्रय आईफोन एप्लिकेशन का परीक्षण करने का प्रयास कर रहा हूं। दुर्भाग्य से लेनदेन की पुष्टि करने के लिए iTunes सर्वर से बात करने का तरीका नहीं मिल रहा है।लेनदेन के साथ JSON ऑब्जेक्ट जेनरेट करें
क्योंकि यह इस तकनीक के साथ मेरी पहली कोशिश है, मैंने सर्वर समर्थन का उपयोग करके सीधे आईफोन से रसीद को सत्यापित करना चुना है। लेकिन Google कोड से JSON एपीआई का उपयोग करके बनाए गए JSON onbject के साथ POST अनुरोध भेजने का प्रयास करने के बाद, इट्यून्स हमेशा एक अजीब प्रतिक्रिया देता है (इसके बजाय "स्थिति = 0" स्ट्रिंग जिसके लिए मैं प्रतीक्षा करता हूं)।
यहाँ कोड है कि मैं प्राप्ति की पुष्टि करने के लिए उपयोग:
- (void)recordTransaction:(SKPaymentTransaction *)transaction {
NSString *receiptStr = [[NSString alloc] initWithData:transaction.transactionReceipt encoding:NSUTF8StringEncoding];
NSDictionary *jsonDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"algo mas",@"receipt-data",nil];
NSString *jsonString = [jsonDictionary JSONRepresentation];
NSLog(@"string to send: %@",jsonString);
NSLog(@"JSON Created");
urlData = [[NSMutableData data] retain];
//NSURL *sandboxStoreURL = [[NSURL alloc] initWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.itunes.apple.com/verifyReceipt"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[jsonString dataUsingEncoding:NSUTF8StringEncoding]];
NSLog(@"will create connection");
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
शायद मैं अनुरोध के हेडर में कुछ भूल रहा लेकिन मुझे लगता है कि इस समस्या विधि मैं JSON ऑब्जेक्ट बनाने के लिए उपयोग में है।
यहाँ कैसे JSON ऑब्जेक्ट की तरह इससे पहले कि मैं यह HTTPBody में जोड़ने के लिए दिखाई देता है:
string to send: {"receipt-data":"{\n\t\"signature\" = \"AUYMbhY
...........
D0gIjEuMCI7Cn0=\";\n\t\"pod\" = \"100\";\n\t\"signing-status\" = \"0\";\n}"}
प्रतिक्रियाएं मुझे मिल गया है:
पूरा प्रतिक्रिया { अपवाद = "java.lang। IllegalArgumentException: अनचाहे स्ट्रिंग को पढ़ने का प्रयास करते समय संपत्ति सूची पार्सिंग विफल रही। कोई स्वीकार्य वर्ण नहीं मिला। लाइन संख्या: 1, कॉलम: 0. "; स्थिति = 21002; }
आपके मार्गदर्शन के लिए बहुत बहुत धन्यवाद।
कहीं भी प्रलेखन में यह नहीं कहता है कि 'लेनदेन रसीद' को यूटीएफ -8-एन्कोडेड स्ट्रिंग के रूप में व्याख्या किया जा सकता है – user102008