当前位置:  开发笔记 > Android > 正文

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

如何解决《有没有人通过原生iPhone应用程序实现PayPalAPI?》经验,为你挑选了1个好方法。

保持"在应用程序中"的唯一方法是给他们一个paypal移动网站的UIWebView并让他们在那里完成交易,否则用户需要使用他们的API密钥.

这听起来不错,有没有人有或看过任何示例代码?我不得不认为这是一段很常见的代码.

更新:Apple会允许吗?这是一个慈善机构的应用程序,所以我假设没有问题.

重新更新:我认为错了.Apple不允许使用paypal在应用内直接付款.您必须重定向到Web界面.



1> Corey Floyd..:

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


更新:

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

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有