36 votes

Quelqu'un a-t-il implémenté l'API PayPal via une application iPhone native?

Il semble que la seule façon de rester "in-app" est de leur donner une UIWebView de l'paypal site mobile et laissez-leur de compléter la transaction là, sinon l'utilisateur a besoin d'utiliser leur clé API.

Est-ce son droit et personne n'a jamais eu ou vu un exemple de code? Je pense que c'est un bout de code commun.

Mise à JOUR: Apple va permettre cela? C'est un organisme de bienfaisance application, donc je suis en supposant qu'il n'est pas question.

Re-mise à JOUR: J'ai supposé que mal. Apple ne seront pas permettre à des paiements directement au sein des applications à l'aide de paypal. Vous devez vous re-diriger vers une interface web.

23voto

Corey Floyd Points 16747

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.

3voto

Chris Milne Points 31

Apple autorisera les commandes personnalisées pour les achats physiques. J'ai discuté avec eux lors de l'iPhone Tech Talks à Londres et ils m'ont dit qu'ils ne prendraient pas en charge les achats physiques avec In App Purchase, car ils auraient à gérer des remboursements, etc. Ils ont également fait référence aux applications existantes dotées de commandes personnalisées.

3voto

Sagar R. Kothari Points 9606

Essayez de suivre ce lien. Je crois que cela vous aiderait.

C'est très simple à comprendre. Le lien a un flux très simple et des noms de variables faciles

http://helpmesolve.blogspot.com/

1voto

Vivian Spencer Points 11

N'est-il pas possible d'utiliser la bibliothèque de paiement mobile de Paypal?

https://www.x.com/community/ppx/xspaces/mobile/mep?view=overview

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X