com.paypal.core.rest.PayPalRESTException:读取超时

Posted

技术标签:

【中文标题】com.paypal.core.rest.PayPalRESTException:读取超时【英文标题】:com.paypal.core.rest.PayPalRESTException:Read timed out 【发布时间】:2014-06-06 10:57:59 【问题描述】:

我在我的项目中使用贝宝付款。它适用于 visa 卡ma​​stercard 并且付款已成功完成。

private def doFinalPayment(payment: Payment, payer: Payer, accessToken: String): Payment =     
val apiContext = new  APIContext(accessToken)  
var objPay=payment   
apiContext.setConfigurationMap(sdkConfig)   
try 
      objPay = objPay.create(apiContext)//Exception Occur here
      // some code here...........

        catch 
     case e: PayPalRESTException => 
       println("EXCEPTION IN DO FINAL PAYMENT METHOD")
       val msg = e.getMessage
       println(e)
       println(msg)
        
       
objPay 

但是对于 American ExpressDiscover 卡,它给了我以下例外:

EXCEPTION IN DO FINAL PAYMENT METHOD  
com.paypal.core.rest.PayPalRESTException:Read timed out
Read timed out

我正在使用这些库依赖......

"com.paypal.sdk" % "paypal-core" % "1.5.2",
  "com.paypal.sdk" % "rest-api-sdk" % "0.7.1",
  "com.paypal.sdk" % "invoicesdk" % "2.4.106",
  "com.paypal.sdk" % "adaptivepaymentssdk" % "2.5.106",
  "com.paypal.sdk" % "adaptiveaccountssdk" % "2.4.106",
  "com.paypal.sdk" % "permissionssdk" % "2.3.106",
  "com.stripe" % "stripe-java" % "1.7.1",
  "com.sparkjava" % "spark-core" % "1.1.1",
   "com.paypal.sdk" % "merchantsdk" % "2.1.96"

【问题讨论】:

你能提供更多细节吗? (完整的错误消息?有关异常的更多详细信息?)[Paypal API 文档][1] 中是否列出了错误?你为什么使用图书馆?根据您使用的标签(和代码 sn-p),我假设您使用 Scala 和 Play Framework。 [1]:developer.paypal.com/docs/classic/api/errorcodes/… 网址混在一起了。这个应该可以工作:developer.paypal.com/docs/classic/api/errorcodes 直到现在我还没有得到任何新的答案或想法 【参考方案1】:

American Express 和 Discover 有时处理时间较长。如果您使用 REST SDK 作为基础,则 http.connectiontimeout 变量设置为 30 秒。您应该将其增加到至少 60(如果仍然超时,可能会更高)。

在 Scala 中,您可以设置 http.setRequestTimeoutInMs(6000) 将超时时间增加到 60 秒。

SDK 示例包含一个设置 APIContext 的 bootstrap.php 文件。

    // Use an ApiContext object to authenticate 
// API calls. The clientId and clientSecret for the 
// OAuthTokenCredential class can be retrieved from 
// developer.paypal.com

$apiContext = new ApiContext(
    new OAuthTokenCredential(
        '...',
        '...'
    )
);



// #### SDK configuration

// Comment this line out and uncomment the PP_CONFIG_PATH
// 'define' block if you want to use static file 
// based configuration

$apiContext->setConfig(
    array(
        'mode' => 'sandbox',
        'http.ConnectionTimeOut' => 30,
        'log.LogEnabled' => true,
        'log.FileName' => '../PayPal.log',
        'log.LogLevel' => 'FINE'
    )
);

http.ConnectionTimeOut 字段是您要查看的位置。将其设置为 60 或更高。

【讨论】:

@PayPal_MSI_Robert 我正在使用“com.paypal.sdk”%“rest-api-sdk”%“0.7.1”,必须更改 http.connectiontimeout,我没有进入哪个文件夹和文件我会得到这个变量。 编辑答案以包含示例。 @RishiDwivedi bootstrap.php 如何帮助他完成 Scala 项目?如果你只说需要设置哪些属性(如果可能的话,为什么以及它们会做什么)会更有帮助 @PayPal_MSI_Robert 没有帮助,我正在寻找同样的问题,请帮助 @PayPal_MSI_Robert 因为@Peanut 说我没有bootstrap.php

以上是关于com.paypal.core.rest.PayPalRESTException:读取超时的主要内容,如果未能解决你的问题,请参考以下文章