2016-11-08 57 views
0

最近我嘗試將Acapture處理器網關與我的應用程序集成。我的應用程序運行在Java 1.7版上。我超時異常的Acapture支付請求:ACapture - 支付網關服務在Java中不起作用7

java.util.concurrent.TimeoutException:期貨超時後[20000毫秒]

但我得到了關於Java 1.6和1.8的迴應。它不適用於Java 1.7。

Java版本1.7

請求:

{ "action":"payment", 
    "header":{"businessId":"877777","additionalProperties":{}}, 
    "body":{"transaction":{"trackingCode":"4381-65-0734","type":"SINGLE","brandId":"1010","amount":"52","currencyCode":"USD","countryCode":"US","additionalProperties":{}}, 
    "card":{"holderName":"Sharon ","number":"4000000000000002","expiryMonth":"02","expiryYear":"2020","cvv":"123","additionalProperties":{}}, 
    "additionalProperties":{} 
},"additionalProperties":{}} 

java.util.concurrent.TimeoutException:期貨後[20000毫秒]超時 在scala.concurrent.impl.Promise $ DefaultPromise。 (Promise.scala:96) at scala.concurrent.impl.Promise $ DefaultPromise.ready(Promise.scala:58) at scala.concurrent.Await $$ anonfun $ ready $ 1.apply(package.scala:86) at scala.concurrent.Await $$ ano nfun $ ready $ 1.apply(package.scala:86) at akka.dispatch.MonitorableThreadFactory $ AkkaForkJoinWorkerThread $$ anon $ 3.block(ThreadPoolBuilder.scala:173) at scala.concurrent.forkjoin.ForkJoinPool.managedBlock(ForkJoinPool.java :2803) at akka.dispatch.MonitorableThreadFactory $ AkkaForkJoinWorkerThread.blockOn(ThreadPoolBuilder.scala:171) at scala.concurrent.Await $ .ready(package.scala:86) at play.api.libs.concurrent.PlayPromise。等待(Promise.scala:134) at play.libs.F $ Promise.get(F.java:213) at play.libs.F $ Promise.get(F.java:224) at com.kachyng。 payment.gateway.acapture.service.AcapturePaymentService.processPaymentService(AcapturePaymentService.java:115) at com.kachyng.payment.gateway.acapture.service.Acapt urePaymentService.makePaymentRequest(AcapturePaymentService.java:63) at com.kachyng.processor.ProcessorGateway.process(ProcessorGateway.java:222) at controllers.PaymentGateway.process(PaymentGateway.java:28) at Routes $$ anonfun $ routes $ 1 $$ anonfun $ applyOrElse $ 9 $$ anonfun $ apply $ 9.apply(routes_routing.scala:145) at Routes $$ anonfun $ routes $ 1 $$ anonfun $ applyOrElse $ 9 $$ anonfun $ apply $ 9.apply(routes_routing.scala: 145) at play.core.Router $ HandlerInvoker $$ anon $ 6 $$ anon $ 2.invocation(Router.scala:193) at play.core.Router $ Routes $$ anon $ 1.invocation(Router.scala:373) at play.core.j.JavaAction $$ anon $ 1.call(JavaAction.scala:50) at play.GlobalSettings $ 1.call(GlobalSettings.java:63) at play.core.j.JavaAction $$ anon $ 2的.app (JavaAction.scala:80) at play.core.j.JavaAction $$ anon $ 2.apply(JavaAction.scala:79) at play.libs.F $ Promise $ PromiseActor.onReceive(F.java:425)at akka.actor.UntypedActor $$ anonfun $ receive $ 1.applyOrElse(UntypedActor.scala:159) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) at akka.actor.ActorCell.invoke(ActorCell。階:386) 在akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) 在akka.dispatch.Mailbox.run(Mailbox.scala:212) 在akka.dispatch.ForkJoinExecutorConfigurator $ MailboxExecutionTask.exec(AbstractDispatcher。 Scala:502) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:262) at scala.concurrent.forkjoin.ForkJoinPool $ WorkQueue。 runTask(ForkJoinPool.java:975) at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool。Java的:1478) 在scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)

Java版本1.6:

響應:

{ "result":"0", 
    "description":"Ok", 
    "header":{"requestTimestamp":"2016-11-08T07:23:49Z","requestCode":"FES.201.ea00df08-2868-42c5-a792-16c9c24f1651"}, 
    "body":{"transaction":{"action":"payment","id":"996e7ed3-8a52-4dc4-bc0e-7fc15adb4a70","trackingCode":"7622-31-9702","amount":"5.00","currencyCode":"USD","brandId":"1010","descriptor":"0235.2924.3298 Kachyng CC 3D"},"card":{"firstSixDigits":"400000","lastFourDigits":"0002","expiryMonth":"02","expiryYear":"2020","holderName":"Sharon Jda"}} 
} 

請幫助我解決這個。

回答

0

從Acapture技術支持團隊獲得答案。根據PCI新規定,Acapture只應該支持TLS 1.2。而Java 7不支持它。這是一個Java限制。 Acapture會建議使用Java 8.