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

Posted

技术标签:

【中文标题】有没有人通过原生 iPhone 应用程序实现了 PayPal API?【英文标题】:Has anyone implemented the PayPal API through a native iPhone app? 【发布时间】:2010-10-21 05:37:45 【问题描述】:

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

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

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

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

【问题讨论】:

这是否意味着无法在应用程序中购买真实世界的商品?您的意思是应该打开 Safari 来完成交易,还是可以在 UIWebView 中完成? 根据下面的回答,这对于实物商品来说可能没问题。当然,开放野生动物园始终是可能的。如果使用 paypal API,您只需要打开 WebView 即可“完成”交易。其他一切都可以是原生的。 您必须仅在应用程序购买中使用虚拟商品。您不能在应用程序中购买真实世界的商品。但是,您可以使用外部方法(如 PayPal 或 Stripe)处理现实世界的商品。 【参考方案1】:

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


更新:

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

【讨论】:

我正在开发用于汽车清洁服务的应用程序苹果将允许直接支付贝宝???【参考方案2】:

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

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

【讨论】:

感谢科里的更新。我们没有使用 PayPal,但我仍然希望被拒绝。我见过一些应用程序允许您输入信用卡购买东西(甚至只是通过随机信用卡交易),但从不捐赠。再次感谢,祝您的应用好运。【参考方案3】:

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

【讨论】:

【参考方案4】:

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

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

【讨论】:

【参考方案5】:

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

【讨论】:

以上是关于有没有人通过原生 iPhone 应用程序实现了 PayPal API?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone 原生应用中的 Paypal 集成

使用当前位置启动 iPhone 原生地图应用

iPhone 原生应用的测试驱动设计

有没有人在 iPhone 上通过 midi->wav 转换等播放 .midi 文件的经验?

当 iPhone 被锁定时,非原生 Apple Watch 应用程序可以工作吗?

不懂 Kubernetes 实现云原生是什么体验?