2009-09-02 31 views
1

Bonjour Je souhaite utiliser Paypal dans mon application iphone, j'ai trouvé le soapRequest pour intégrer l'API paypal. Mon code estUtiliser l'API PayPal dans une application iPhone

NSString *soapMessage = [NSString stringWithFormat: 
@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" 
"<SOAP-ENV:Envelope xmlns:xsi= \"http://www.w3.org/2001/XMLSchema-instance\" xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">\n" 
"<SOAP-ENV:Header>\n" 
"<RequesterCredentials xmlns=\"urn:ebay:api:PayPalAPI\">\n" 
"<Credentials xmlns=\"urn:ebay:apis:eBLBaseComponents\">\n" 
"<Username>api_username</Username>\n" 
"<Password>api_password</Password>\n" 
"<Signature/>\n"  
"<Subject/>\n" 
"</Credentials>\n" 
"</RequesterCredentials>\n" 
"</SOAP-ENV:Header>\n" 
"<SOAP-ENV:Body>\n" 
"<specific_api_name_Req xmlns=\"urn:ebay:api:PayPalAPI\">\n" 
"<specific_api_name_Request>\n" 
"<Version xmlns=urn:ebay:apis:eBLBaseComponents”>service_version</Version>\n" 
"<required_or_optional_fields xsi:type=”some_type_here”>\n"     
"</required_or_optional_fields>\n" 
"</specific_api_name_Request>\n" 
"</specific_api_name_Req>\n" 
"</SOAP-ENV:Body>\n" 
          "</SOAP-ENV:Envelope>\n"]; 

NSLog(@"Soap message===%@",soapMessage); 


NSString *parameterString = [NSString stringWithFormat:@"USER=%@&PWD=%@&SIGNATURE=%@&VERSION=57.0&METHOD=SetMobileCheckout&AMT=%.2f&CURRENCYCODE=USD&DESC=%@&RETURNURL=%@", userName, password, signature, 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"); 
} 

Mais ici je ne reçois pas la valeur de paypalUrlNVP. Comment puis-je l'avoir?? Et si possible alors s'il vous plaît donner un exemple de l'intégration paypalAPI dans iphone.

Je veux également utiliser la fonctionnalité de paiement. Je suis nouveau dans ce domaine, donc je n'ai aucune idée à ce sujet. Alors, donnez-moi un exemple de code entier. Merci d'avance.

+1

Cela ressemble à ceci est à peu près une copie de http://stackoverflow.com/questions/779423/has-anyone-implemented-the-paypal -api-through-a-native-iphone-app – andynormancx

Répondre

2

Vous semblez mélanger deux manières différentes d'appeler l'API PayPal. Vous avez une chaîne XML SOAP, que vous n'utilisez pas réellement, puis appelez l'API NVP (paire de valeurs name).

Vous devez décider lequel vous allez réellement utiliser.

Les URL que vous devez utiliser pour l'API NVP sont:

serveurs API pour signature API Security

Si vous utilisez une signature API, poster la demande à l'un Sur ce nombre serveurs:

Bac à sable: https://api-3t.sandbox.paypal.com/nvp

en direct: https://api-3t.paypal.com/nvp serveurs API pour le certificat API Security

Si vous utilisez un certificat API, poster la demande de ONEOF ces serveurs:

Sandbox: https://api.sandbox.paypal.com/nvp

en direct: https://api.paypal.com/nvp

Comme décrit ici:

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_nvp_NVPAPIOverview

+0

ok je l'ai vérifié mais je reçois XML Comme ceci ACK = Échec & L_ERRORCODE0 = 81002 & L_SHORTMESSAGE0 = Non spécifié% 20Method & L_LONGMESSAGE0 = Méthode% 20Specified% 20is% 20not% 20Supported & L_SEVERITYCODE0 = Erreur. C'est une erreur, que puis-je faire? –

+0

Je pense que vous devez activer votre compte PayPal pour Mobile Checkout – andynormancx

+0

ok merci. Je le ferai. –

0

De plus, je pense que vous devriez encode les paramètres de nom et la valeur que vous passez dans.

+0

Cela n'est pas nécessaire, les valeurs NVP sont dans le corps de la requête POST, pas dans l'URL d'un GET. – andynormancx

+0

oups! c'est correct! Que je suis bête! – Ushox

-1

Vous pouvez regarder cette question aussi (link) qui vous indique aura que votre demande rejeté par Apple. Vous devez regarder les mécanismes d'achat In App pour collecter des paiements dans une application iPhone

+0

Vente de biens physiques via paypal est bien dans iOS. Ce sont uniquement les biens numériques qui doivent utiliser les achats intégrés. –

Questions connexes