Кто-нибудь реализовал API PayPal через собственное приложение для iPhone?
Кажется, единственный способ остаться в приложении - предоставить им UIWebView мобильного сайта PayPal и позволить им завершить транзакцию там, иначе пользователю потребуется использовать свой ключ API.
Звучит ли это правильно, и кто-нибудь получил или увидел какой-нибудь пример кода? Я должен думать, что это общая часть кода.
UPDATE:
Разрешит ли Apple это?
Это приложение для благотворительности, поэтому я предполагаю, что проблем нет.
Re-UPDATE:
Я ошибался.
Apple не разрешает платежи непосредственно в приложениях с помощью PayPal. Вы должны перенаправить на веб-интерфейс.
Ответы
Ответ 1
Re-Update:
Как указано ниже, этот код может по-прежнему полезен для покупки физических товаров
Update:
Хотя этот код работает, условия App Store не позволят вам использовать этот код в приложении.
Оригинальный ответ:
Я понял это после некоторых тяжелых исследований API. Ниже приведен метод, который создает HTTP POST для отправки в Paypal и создает NSURLRequest. Вы можете заполнить соответствующие переменные формата строки. Я использовал HTTP Client, чтобы проверить, что я делаю.
- (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.
Ответ 2
Apple предоставит заказные покупки для физических покупок. Я поговорил с ними на iPhone Tech Talks в Лондоне, и они сказали, что они не будут поддерживать физические покупки в App Purchase, так как им придется иметь дело с возмещениями и т.д. Они также ссылаются на существующие приложения, у которых есть пользовательские проверки.
Ответ 3
Попробуйте следовать этой ссылке. Я верю, что это поможет вам.
Это очень просто понять. Ссылка имеет очень простой поток и простые имена переменных
http://helpmesolve.blogspot.com/
Ответ 4
Когда вы говорите "я ошибался" в отношении Apple, предоставляющего благотворительные пожертвования в приложении, вы можете предоставить дополнительную информацию? Я работаю над приложением, и там есть требование разрешить благотворительные пожертвования... Я не смог ничего найти от Apple, строго запрещающего его, но я не смог найти приложение, которое разрешает благотворительные пожертвования в магазина.
(Я боролся с тем, публиковать ли это здесь, а не как новый вопрос верхнего уровня, но вы первый человек, с которым я столкнулся с прямым знанием о благотворительной поддержке в вопросе iPhone-приложения).
Ответ 5
Невозможно ли использовать мобильную платежную библиотеку Paypal?
https://www.x.com/community/ppx/xspaces/mobile/mep?view=overview
Ответ 6
В зависимости от сложности ваших потребностей, PayPal iOS SDK (выпущенный в марте 2013 г.) может быть билетом.