有没有人通过本地iPhone应用程序实现了PayPal API?
看起来停留在“应用程序”的唯一方法是给他们一个PayPal移动网站的UIWebView,让他们在那里完成交易,否则用户将需要使用他们的API密钥。
这听起来是否正确,并有任何人得到或看到任何示例代码? 我不得不认为这是一个普通的代码。
更新:苹果是否允许这样做? 这是一个慈善应用程序,所以我假设没有问题。
重新更新:我错了。 苹果公司不会允许使用贝宝直接在应用程序内付款。 你必须重新定向到一个Web界面。
重新更新:如下面的回答这个代码可能仍然是有用的实物商品的购买
更新:
尽pipe此代码有效,但App Store条款不允许您在应用程序中使用此代码。
原始答案:
经过一些沉重的API研究,我发现了这一点。 下面是一个创build一个HTTP POST来发送给PayPal并创build一个NSURLRequest的方法。 您可以填写适当的string格式variables。 我使用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"); } }
之后,您需要parsing响应,获取会话密钥并创build一个UIWebView,将其带到手机PayPal网站。 贝宝让你指定一个“返回URL”,你可以做任何你想要的。 只要继续在这个地址的委托方法检查UIWebview,然后你知道交易是完整的。
然后你再发送一个HTTP Post(类似于上面的那个)到PayPal来完成交易。 您可以在Paypal Mobile Checkout API文档中findAPI信息。
苹果将允许自定义结账实物购买。 我在伦敦的iPhone Tech Talks上与他们交谈,他们表示他们不会支持In App Purchase的实物购买,因为他们将不得不处理退款等事情。他们还提到现有的具有自定义结账的应用程序。
当你说“我错了”苹果在应用程序内允许慈善捐款,你能提供更多的信息吗? 我正在开发一个应用程序,并且要求允许慈善捐款……我一直没能从苹果公司那里find严格禁止的东西,但是我一直没能find一个允许慈善捐赠的应用程序存储,或者。
(我努力在这里发表,而不是作为一个新的顶级问题,但你是第一个在iPhone应用程序问题中直接了解慈善捐赠的人)。
使用Paypal的移动支付库不可能吗?
https://www.x.com/community/ppx/xspaces/mobile/mep?view=overview
根据您的需求的复杂性, PayPal的iOS SDK (2013年3月发布)可能是门票。