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.
最近我尝试将 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.