有人通过原生iPhone应用程序实现了PayPal API吗?

36

似乎唯一保持“在应用程序中”的方法是提供 PayPal 移动站点的 UIWebView,并让他们在那里完成交易,否则用户将需要使用他们的 API 密钥。

这听起来正确吗?有人有或见过任何示例代码吗?我认为这是常见的代码。

更新: 苹果公司会允许吗? 这是一个慈善应用,所以我认为没有问题。

重新更新: 我猜错了。 苹果不允许使用 PayPal 直接在应用程序中进行付款。您必须重定向到 Web 界面。


这是否意味着在应用内购买真实世界的商品是不可能的?你是否意味着应该打开Safari来完成交易,还是可以在UIWebView中完成? - ustun
1
根据下面的回答,这对于实体商品可能是可以的。当然,打开Safari始终是可行的。如果使用PayPal API,您只需要打开WebView即可“完成”交易。其他所有内容都可以本地化。 - Corey Floyd
你必须仅使用应用内购买来购买虚拟商品。不能使用应用内购买购买现实世界的商品。但是,你可以使用外部支付方式(如PayPal或Stripe)来购买现实世界的商品。 - jsherk
5个回答

23

更新:

尽管此代码可用,但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是否包含该地址,然后您就知道交易已完成。

然后,您需要向Paypal发送另一个HTTP Post请求(类似于上面的请求),以完成交易。您可以在Paypal Mobile Checkout API文档中找到API信息。


我正在开发汽车清洗服务的应用程序,苹果公司将允许通过PayPal直接付款吗? - Mitul Bhadeshiya

3

苹果将允许定制结账方式进行实体购买。我在伦敦的iPhone技术讲座上与他们交谈,他们表示不支持应用内购物的实体购买,因为他们需要处理退款等问题。他们还提到了已有的使用定制结账方式的应用。


1

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


1

1

当你说苹果允许应用内进行慈善捐赠的时候,但你提供更多信息吗?我正在开发一个应用程序,需要允许慈善捐赠...我没有找到苹果严格禁止这样做的任何信息,但我也没有找到在商店中允许慈善捐赠的应用程序。

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


1
谢谢你的更新,Corey。我们没有使用PayPal,但我仍然期望被拒绝。我看过很多应用程序,允许您输入信用卡购买某些东西(甚至只是运行随机信用卡交易),但从未捐赠。再次感谢你,祝你的应用好运。 - Bob Rasmussen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接