2009-09-02 4 views
1

안녕하세요. 내 iPhone 응용 프로그램에서 Paypal을 사용하고 싶습니다. paypal API를 통합하기 위해 soapRequest를 찾았습니다. 내 코드는iPhone 응용 프로그램에서 PayPal API 사용

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"); 
} 

하지만 여기서는 paypalUrlNVP 값을 얻지 못했습니다. 나는 그것을 어떻게 얻을 수 있냐? 그리고 가능한 경우 아이폰에 paypalAPI 통합의 몇 가지 예를 들어주십시오.

나는 또한 체크 아웃 기능을 사용하고 싶습니다. 나는이 분야에 새로운 것이므로 그것에 대해 전혀 모른다. 그러니 친절하게도 전체 샘플 코드를 제공하십시오. 미리 감사드립니다.

+1

이렇게 보이는 것 같습니다. http://stackoverflow.com/questions/779423/has-anyone-implemented-the-paypal -api-through-a-native-iphone-app – andynormancx

답변

2

PayPal API를 호출하는 두 가지 다른 방법이 혼합되어있는 것처럼 보입니다. 실제로 사용하지 않는 SOAP XML 문자열이 있고 NVP (이름 값 쌍) API를 호출합니다.

실제로 어떤 것을 사용할 지 결정해야합니다. 당신이 NVP API를 사용할 필요가

URL은 다음과 같습니다 API 서명 보안에 대한

API 서버 당신이 API 서명을 사용하는 경우, 서버 냐고요에 요청을 게시

:

샌드 박스 : 라이브 https://api-3t.sandbox.paypal.com/nvp

: https://api-3t.paypal.com/nvp API 서버 여기에 설명 된 바와 같이 https://api.paypal.com/nvp

:

샌드 박스 : https://api.sandbox.paypal.com/nvp

라이브 당신이 API 인증서를 사용하는 경우 API 인증서에 대한 보안

, 이러한 서버를 oneof하는 요청을 게시 :

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

+0

괜찮 았나 확인해 보았지만 XML을 얻는다. ACK = 실패 & L_ERRORCODE0 = 81002 & L_SHORTMESSAGE0 = 지정되지 않은 % 20 메소드 & L_LONGMESSAGE0 = 메소드 % 20 지정 % 20is % 20not % 20Supported & L_SEVERITYCODE0 = 오류. 오류가 있습니다. 어떻게해야합니까? –

+0

모바일 체크 아웃을 위해 PayPal 계정을 활성화해야한다고 생각합니다. – andynormancx

+0

감사합니다. 나는 그것을 할 것이다. –

0

는 또한, 난 당신이 전달하고있는 이름과 값 매개 변수를을 URL 인코딩한다고 생각합니다.

+0

NVP 값은 GET의 URL이 아니라 POST 요청의 본문에 있습니다. – andynormancx

+0

oops! 맞습니다! 바보 나! – Ushox

-1

당신은 너무 당신을 나타냅니다 (link가) 응용 프로그램을해야합니다이 문제를보고 할 수 있습니다 애플에 의해 거부되었습니다. iPhone App에서 지불을 수집하려면 In App Purchase 메커니즘을 살펴 봐야합니다.

+0

페이팔을 통한 실제 상품 판매는 iOS에서 가능합니다. 인앱 구매를 사용해야하는 디지털 제품입니다. –