36

似乎留在“应用程序”中的唯一方法是给他们一个贝宝移动网站的 UIWebView 并让他们在那里完成交易,否则用户将需要使用他们的 API 密钥。

这听起来对吗?有人得到或看过任何示例代码吗?我不得不认为这是一段常见的代码。

更新:苹果会允许这样做吗?这是一个慈善应用程序,所以我假设没有问题。

重新更新:我假设错了。Apple 将不允许使用 paypal 在应用程序内直接付款。您必须重新定向到 Web 界面。

4

5 回答 5

23

重新更新:如下面的回答,此代码对于购买实物商品可能仍然有用


更新:

尽管此代码有效,但 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 信息。

于 2009-05-12T02:40:30.410 回答
3

Apple 将允许对实体购买进行自定义结账。我在伦敦的 iPhone Tech Talks 上与他们进行了交谈,他们说他们将不支持使用 In App Purchase 进行实体购买,因为他们必须处理退款等问题。他们还提到了具有自定义结账功能的现有应用程序。

于 2009-12-10T15:29:44.533 回答
1

当您对 Apple 允许在应用程序中进行慈善捐赠说“我认为是错误的”时,您能提供更多信息吗?我正在开发一个应用程序,并且要求允许慈善捐赠...我无法从 Apple 中找到任何严格禁止它的内容,但我无法找到允许慈善捐赠的应用程序商店,要么。

(我在纠结是否要在这里发布这个问题,而不是作为一个新的顶级问题,但你是我遇到的第一个直接了解 iPhone 应用程序问题中的慈善捐赠的人)。

于 2009-07-28T22:34:33.080 回答
1

不能使用 Paypal 的移动支付库吗?

https://www.x.com/community/ppx/xspaces/mobile/mep?view=overview

于 2010-08-10T11:36:18.557 回答
1

根据您需求的复杂程度,PayPal 的 iOS SDK(2013 年 3 月发布)可能是合适的选择。

于 2013-03-12T16:40:16.013 回答