Re-Update:
Как показано ниже, этот код все еще может быть полезен для покупки физических товаров
Обновление:
Хотя этот код работает, условия App Store не позволяют вам использовать этот код в приложении.
Оригинальный ответ:
Я понял это после некоторых серьезных исследований API. Ниже приведен метод, который создает HTTP POST для отправки в Paypal и выполняет NSURLRequest. Вы можете заполнить соответствующие строковые переменные формата. Я использовал HTTP-клиент , чтобы проверить, что я делал.
- (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");
}
}
После этого вам нужно проанализировать ответ, захватить ключ сеанса и создать UIWebView, чтобы перенести их на мобильный сайт PayPal. Paypal позволяет вам указать «обратный URL», который вы можете сделать что угодно. Просто продолжайте проверять UIWebview в методе делегата для этого адреса, и тогда вы узнаете, что транзакция завершена.
Затем вы отправляете еще одну HTTP-запись (аналогичную приведенной выше) в Paypal для завершения транзакции. Вы можете найти информацию об API в документации Paypal Mobile Checkout API.