我正在使用贝宝支付在我的项目。它适用于签证卡和万事达卡,并成功地完成了付款。
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
}但对于美国运通&Discovery卡,它给了我以下例外:
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"发布于 2014-04-22 13:26:16
美国运通和发现有时有更长的处理时间。如果使用REST作为基础,则http.connectiontimeout变量设置为30秒。您应该增加到至少60 (如果您仍然有超时可能更高)。
在Scala中,可以将http.setRequestTimeoutInMs(6000)设置为将超时时间提高到60秒。
SDK示例包括一个设置bootstrap.php的APIContext文件。
// 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或更高。
https://stackoverflow.com/questions/23213308
复制相似问题