似乎留在“应用程序”中的唯一方法是给他们一个贝宝移动网站的 UIWebView 并让他们在那里完成交易,否则用户将需要使用他们的 API 密钥。
这听起来对吗?有人得到或看过任何示例代码吗?我不得不认为这是一段常见的代码。
更新:苹果会允许这样做吗?这是一个慈善应用程序,所以我假设没有问题。
重新更新:我假设错了。Apple 将不允许使用 paypal 在应用程序内直接付款。您必须重新定向到 Web 界面。
似乎留在“应用程序”中的唯一方法是给他们一个贝宝移动网站的 UIWebView 并让他们在那里完成交易,否则用户将需要使用他们的 API 密钥。
这听起来对吗?有人得到或看过任何示例代码吗?我不得不认为这是一段常见的代码。
更新:苹果会允许这样做吗?这是一个慈善应用程序,所以我假设没有问题。
重新更新:我假设错了。Apple 将不允许使用 paypal 在应用程序内直接付款。您必须重新定向到 Web 界面。
重新更新:如下面的回答,此代码对于购买实物商品可能仍然有用
更新:
尽管此代码有效,但 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,然后您就知道事务已完成。
然后,您再向 Paypal 发送一个 HTTP Post(类似于上面的一个)以完成交易。您可以在 Paypal Mobile Checkout API 文档中找到 API 信息。
Apple 将允许对实体购买进行自定义结账。我在伦敦的 iPhone Tech Talks 上与他们进行了交谈,他们说他们将不支持使用 In App Purchase 进行实体购买,因为他们必须处理退款等问题。他们还提到了具有自定义结账功能的现有应用程序。
当您对 Apple 允许在应用程序中进行慈善捐赠说“我认为是错误的”时,您能提供更多信息吗?我正在开发一个应用程序,并且要求允许慈善捐赠...我无法从 Apple 中找到任何严格禁止它的内容,但我无法找到允许慈善捐赠的应用程序商店,要么。
(我在纠结是否要在这里发布这个问题,而不是作为一个新的顶级问题,但你是我遇到的第一个直接了解 iPhone 应用程序问题中的慈善捐赠的人)。
不能使用 Paypal 的移动支付库吗?
https://www.x.com/community/ppx/xspaces/mobile/mep?view=overview
根据您需求的复杂程度,PayPal 的 iOS SDK(2013 年 3 月发布)可能是合适的选择。