2014-02-10 77 views
2

更新:hideCreditCardButton在这个问题上没有作用,这只是一个巧合,当我尝试它没有信用卡它为我工作,但那不是这种情况了。工作但只有20-30%的时间。无法与贝宝服务器通信

我使用贝宝的iOS SDK 1.4.6。如果我使用paymentViewController.hideCreditCardButton = YES;它工作正常,但如果我将此设置为paymentViewController.hideCreditCardButton = NO;我得到服务器错误(参考图像)。

enter image description here

这里是我的代码:

- (void)paypalPayment { 

// Create a PayPalPayment 
float paypalPrice =[youPay floatValue]; 
NSString* currencyCode = appDelegate.countryCurrency; 
if ([currencyCode isEqual: @"INR"]) { 
    float new = [[[ExchangeRate sharedManager]getExchangeRate:@"INR" toCurrency:@"USD"] 
floatValue]; 
    paypalPrice = paypalPrice*new; 
} 


PayPalPayment *payment = [[PayPalPayment alloc] init]; 
payment.amount = [[NSDecimalNumber alloc] initWithString: 
[NSString stringWithFormat:@"%.2f",paypalPrice]]; 
payment.currencyCode = @"USD"; 
payment.shortDescription = @"Total Order"; 

[PayPalPaymentViewController setEnvironment:PayPalEnvironmentProduction]; 

// Provide a payerId that uniquely identifies a user within the scope of your system, 
// such as an email address or user ID. 
NSString *aPayerId = @"[email protected]"; 

PayPalPaymentViewController *paymentViewController; 
paymentViewController = [[PayPalPaymentViewController alloc] 
initWithClientId:kPayPalClientId 
receiverEmail:kPayPalReceiverEmail 
           payerId:aPayerId 
           payment:payment 
           delegate:self]; 
paymentViewController.languageOrLocale = @"en"; 
paymentViewController.hideCreditCardButton = NO; 
[self presentViewController:paymentViewController animated:YES completion:nil]; 
} 

回答

1

戴夫来自PayPal在这里。

这确实很奇怪。你一看到这个视图控制器就会得到这个结果?今天还在发生吗?

从你的截图,它看起来像SDK仍试图获得与贝宝服务器的初始连接。在这个早期阶段,hideCreditCardButton的设置不应该影响任何东西。

您正在使用的指定生产(而不是指定的沙盒客户端ID)的客户端ID,对不对?

你在控制台日志中看到有用的东西吗?

+0

喜戴夫,感谢回答。你是对的'hideCreditCardButton'没有影响它,也许还有别的东西,这只是一个巧合,当我尝试它没有信用卡它为我工作,但那不是这样的情况了。它在10次中运行3-4次。 –

+0

我正在使用指定用于生产的客户端ID,并且在控制台中看不到任何内容。 P.S:我住在印度,这是否需要做任何事情? –

+0

这可能是因为存在一些连接问题(可能是印度的PayPal服务器与另一个PayPal服务器之间的连接问题),或者是与您正在进行交互的服务器隔离的其他问题。您可能需要联系PayPal开发人员支持部门进行跟踪。 –

0
  • 我有同样的问题,并通过更改kPayPalReceiverEmail解决。

  • 如果使用相同的电子邮件作为kPayPalReceiverEmail在贝宝登陆比这个错误来发送付款。

  • 我只是改变kPayPalReceiverEmail电子邮件到另一个,我得到来自PayPal服务器成功响应。

它可以帮助你

+0

据我所知,“kPayPalReceiverEmail”应该是您的PayPal开发者账户所关联的一个,如果我错了,请纠正我。 –

+1

它不是必须需要..你可以使用任何其他太..目前我使用其他比贝宝开发者账户.. –

+1

“kPayPalReceiverEmail应该是您的PayPal开发者帐户关联的一个” - 是的,这是官方建议。正如Rahul指出的那样,您不应该使用与登录到SDK的pay * er *地址相同的电子邮件地址。 –