cocoa-touch - 新的 PayPal iOS SDK(测试版)- 无法连接到沙箱

标签 cocoa-touch paypal paypal-sandbox

我已将新的 PayPal iOS SDK 集成到我的应用程序中。可以引用here .新的 SDK 非常容易设置,它允许您在 3 种不同的环境中工作 1.) PayPalEnvrionmentNoNetwork 2.) PayPalEnvironmentSandBox 和 3) 没有环境意味着要进入他们的实时服务器。一切都适用于 NoNetwork 环境,显然是因为它使用模拟虚拟数据,无需访问任何服务器。当我尝试切换到 SandBox 环境时,PayPal 无法连接到服务器,出现以下错误:

  We're Sorry
  There was a problem communicating with the PayPal servers. [Cancel][Try Again]

我不确定这是我的问题还是他们的问题。以下是配置:

 #define kPayPalClientId @"AbRN_BAV7YMsvde9KUFPsbSC_72NA9swMcY-j0QZL629lXrjSc9CNwfFn8Ac"
 #define kPayPalReceiverEmail @"The email I use to login into PayPal"


- (IBAction)pay {
   PayPalPayment *payment = [[PayPalPayment alloc] init];
   payment.amount = [[NSDecimalNumber alloc] initWithString:@"14.99"];
   payment.currencyCode = @"USD";
   payment.shortDescription = @"Testing.";

   if (!payment.processable) {
    // This particular payment will always be processable. If, for
    // example, the amount was negative or the shortDescription was
    // empty, this payment wouldn't be processable, and you'd want
    // to handle that here.
   }

   // Any customer identifier that you have will work here. Do NOT use a device- or
   // hardware-based identifier.
   NSString *customerId = nil;

   // Set the environment:
   // - For live charges, use PayPalEnvironmentProduction (default).
   // - To use the PayPal sandbox, use PayPalEnvironmentSandbox.
   // - For testing, use PayPalEnvironmentNoNetwork.
   [PayPalPaymentViewController setEnvironment:self.environment];

   PayPalPaymentViewController *paymentViewController = [[PayPalPaymentViewController alloc] initWithClientId:kPayPalClientId
                                                                                             receiverEmail:kPayPalReceiverEmail
                                                                                                   payerId:customerId
                                                                                                   payment:payment
                                                                                                  delegate:self]; 
   paymentViewController.hideCreditCardButton = NO;

   [self presentViewController:paymentViewController animated:YES completion:nil];

}

修复:我终于找到了问题所在,您需要在 View 加载后添加它。我根本没有这个。

  [PayPalPaymentViewController prepareForPaymentUsingClientId:kPayPalClientId];

最佳答案

正如我的同事在评论中确定的那样,问题是 PayPal iOS SDK 中的错误,而不是您的代码中的错误。我们已在 version 1.0.4 中修复了该问题(.tgz)。

使用更新后的库,您的代码现在应该可以按预期工作; prepareForPaymentUsingClientId: 调用应该始终是可选的(尽管仍然推荐)。

再次感谢!

关于cocoa-touch - 新的 PayPal iOS SDK(测试版)- 无法连接到沙箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15556622/

相关文章:

objective-c - AF联网进展

facebook - 如何将 PayPal 立即购买按钮添加到我的 Facebook 事件页面?我有代码但不知道放在哪里

ios6 - PayPal MPL iOS SDK 中的无效参数小计

ruby-on-rails - 如何使用 paypal_permissions gem 获取 PayPal 的用户数据和交易详细信息?

用于获取客户数据的 PayPal API 端点

ios - 调试CoreData异常

iphone - 水平滚动 UITableView

cocoa-touch - UITextField选择背景颜色

php - PayPal IPN 不断返回 'INVALID' 代码,无论我做什么

paypal - Paypal 自适应支付 API 的问题