Re-Update: Come risposto al di sotto di questo codice può essere ancora utile per l'acquisto di beni fisici
Aggiornamento:
Anche se questo codice funziona, termini App Store sarà non permetterà utilizzare questo codice all'interno di un'app.
risposta originale:
ho capito questo dopo alcune ricerche API pesante. Di seguito è riportato un metodo che crea un POST HTTP da inviare a Paypal e crea NSURLRequest. È possibile inserire le variabili di formato stringa appropriate. Ho usato HTTP Client per verificare cosa stavo facendo.
- (void)sendPayPalRequestPOST{
perfomingSetMobileCheckout=YES;
recordResults = FALSE;
NSString *parameterString = [NSString stringWithFormat:@"USER=%@&PWD=%@&SIGNATURE=%@&VERSION=57.0&METHOD=SetMobileCheckout&AMT=%.2f&CURRENCYCODE=USD&DESC=%@&RETURNURL=%@", userName, password, signature, self.donationAmount, @"Some Charge", returnCallURL];
NSLog(parameterString);
NSURL *url = [NSURL URLWithString:paypalUrlNVP];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d", [parameterString length]];
[theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPMethod:@"POST"];
[theRequest setHTTPBody: [parameterString dataUsingEncoding:NSUTF8StringEncoding]];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if(theConnection){
webData = [[NSMutableData data] retain];
[self displayConnectingView];
}else{
NSLog(@"theConnection is NULL");
}
}
Dopo questo è necessario analizzare la risposta, prendete la chiave di sessione e creare un UIWebView per portarli al sito PayPal mobile. Paypal ti consente di specificare un "URL di ritorno" che puoi creare tutto ciò che desideri. Continua a controllare UIWebview nel metodo delegato per questo indirizzo e poi sai che la transazione è completa.
Quindi si invia un altro post HTTP (simile a quello sopra) a Paypal per finalizzare la transazione. Puoi trovare le informazioni dell'API nei documenti dell'API Checkout Mobile Paypal.
fonte
2009-05-12 02:40:30
Ciò significa che non è possibile acquistare beni reali all'interno di un'app? Vuoi dire che si dovrebbe aprire Safari per completare la transazione, o può essere fatto in un UIWebView? – ustun
secondo una risposta qui sotto, questo può essere ok per i beni fisici. Il safari di apertura è ovviamente sempre possibile. Se si utilizza l'API paypal, è sufficiente aprire WebView per "completare" l'interazione. Tutto il resto può essere nativo. –
È NECESSARIO utilizzare negli acquisti di app solo per beni virtuali. NON puoi usare negli acquisti di app per beni reali. È tuttavia possibile utilizzare un metodo esterno (come PayPal o Stripe) per beni reali. – jsherk