Подтвердить что ты не робот

Кто-нибудь реализовал API PayPal через собственное приложение для iPhone?

Кажется, единственный способ остаться в приложении - предоставить им UIWebView мобильного сайта PayPal и позволить им завершить транзакцию там, иначе пользователю потребуется использовать свой ключ API.

Звучит ли это правильно, и кто-нибудь получил или увидел какой-нибудь пример кода? Я должен думать, что это общая часть кода.

UPDATE: Разрешит ли Apple это? Это приложение для благотворительности, поэтому я предполагаю, что проблем нет.

Re-UPDATE: Я ошибался. Apple не разрешает платежи непосредственно в приложениях с помощью PayPal. Вы должны перенаправить на веб-интерфейс.

4b9b3361

Ответ 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-приложения).

Ответ 6

В зависимости от сложности ваших потребностей, PayPal iOS SDK (выпущенный в марте 2013 г.) может быть билетом.