Re-Mise À Jour:
Comme répondu en dessous de ce code peut encore être utile pour l'achat de biens physiques
Mise à jour:
Bien que ce code fonctionne, l'App Store termes ne vous permettra pas d'utiliser ce code dans une application.
Réponse Originale À Cette Question:
J'ai compris après quelques lourds recherche d'API. Ci-dessous est une méthode qui crée un HTTP POST pour envoyer à Paypal et fait un NSURLRequest. Vous pouvez remplir le format de la chaîne de variables. J'ai utilisé l'adresse HTTP du Client pour vérifier ce que je faisais.
- (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");
}
}
Après cela, vous devez analyser la réponse, saisissez la clé de session et créer une UIWebView de les prendre pour le mobile site de paypal. Paypal vous permet de spécifier une URL de retour" qui vous pouvez faire tout ce que vous voulez. Juste garder le contrôle de la UIWebview dans la méthode du délégué pour cette adresse et puis vous savez que la transaction soit terminée.
Ensuite, vous envoyez un plus HTTP Post (similaire à celui ci-dessus) à Paypal pour finaliser la transaction. Vous pouvez trouver les informations de l'API de Paypal Mobile Checkout API docs.