ACapture - 支付网关服务在 Java 7 中不工作

ACapture - Payment Gateway service not working in Java 7

最近我尝试将 Acapture 处理器网关与我的应用程序集成。我的应用程序 运行 Java 版本 1.7。我收到 Acapture 付款请求的超时异常:

java.util.concurrent.TimeoutException: Futures timed out after [20000 milliseconds]

但我在 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: Futures timed out after [20000 milliseconds] at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:96) at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:58) at scala.concurrent.Await$$anonfun$ready.apply(package.scala:86) at scala.concurrent.Await$$anonfun$ready.apply(package.scala:86) at akka.dispatch.MonitorableThreadFactory$AkkaForkJoinWorkerThread$$anon.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.await(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.AcapturePaymentService.makePaymentRequest(AcapturePaymentService.java:63) at com.kachyng.processor.ProcessorGateway.process(ProcessorGateway.java:222) at controllers.PaymentGateway.process(PaymentGateway.java:28) at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.apply(routes_routing.scala:145) at Routes$$anonfun$routes$$anonfun$applyOrElse$$anonfun$apply.apply(routes_routing.scala:145) at play.core.Router$HandlerInvoker$$anon$$anon.invocation(Router.scala:193) at play.core.Router$Routes$$anon.invocation(Router.scala:373) at play.core.j.JavaAction$$anon.call(JavaAction.scala:50) at play.GlobalSettings.call(GlobalSettings.java:63) at play.core.j.JavaAction$$anon.apply(JavaAction.scala:80) at play.core.j.JavaAction$$anon.apply(JavaAction.scala:79) at play.libs.F$Promise$PromiseActor.onReceive(F.java:425) at akka.actor.UntypedActor$$anonfun$receive.applyOrElse(UntypedActor.scala:159) at akka.actor.ActorCell.receiveMessage(ActorCell.scala:425) at akka.actor.ActorCell.invoke(ActorCell.scala:386) at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:230) at akka.dispatch.Mailbox.run(Mailbox.scala:212) at 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) at 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"}}
}

请帮我解决这个问题。

已获得 Acapture 技术支持团队的答复。根据 PCI 新规定,Acapture 应仅支持 TLS 1.2。而Java7不支持。这是一个 java 限制。 Acapture 建议使用 Java 8.