pay-java-parent icon indicating copy to clipboard operation
pay-java-parent copied to clipboard

支付发起的结果问题

Open GabbyMrH opened this issue 4 years ago • 4 comments

请教作者一个问题:发起支付的代码示例只看到了

        // 获取支付所需的信息
        Map<String, Object> directOrderInfo = aliPayService.orderInfo(payOrder);
        //获取表单提交对应的字符串,将其序列化到页面即可,
        String directHtml = aliPayService.buildRequest(directOrderInfo, MethodType.POST)

这样的代码,按照文档是直接返回页面,但是如果我想知道支付调取成功或者失败的结果,如何得知?比如支付宝官方文档是这样获取的:

request.setBizContent(bizContent.toString());
AlipayTradeWapPayResponse response = alipayClient.pageExecute(request);
if(response.isSuccess()){
System.out.println("调用成功");
} else {
System.out.println("调用失败");
}

请问咱们这边如何获取呢?

GabbyMrH avatar Oct 28 '21 10:10 GabbyMrH

这个你得去了解支付流程了,这里我就不细说了,你去看看支付宝网页支付接入流程

egzosn avatar Oct 31 '21 12:10 egzosn

您这边可能还没明白我意思,不是流程明不明白的问题。是你的sdk发起支付时如何得知支付宝那边成功返回了预想的数据呢?如果发起失败呢?该用异常包裹处理还是您这边有特别的处理方式?

咱们接入支付,向支付平台发起支付,那支付平台是会返回对应状态码或指定的消息,同时还会返回你发起支付服务所欲得的内容,一般以发起支付后支付平台返回的状态码或消息提示来判断发起支付成功与否对吧?但是我在您的sdk并没有看到呢,您这边的sdk拼装参数然后发起之后后直接就返回directHtml了。

换句话来说就是:如果我发起失败了,那支付平台就不会按你预想的返回directHtml了,这时候你还直接返回directHtml出去吗,这貌似不合理的吧?

GabbyMrH avatar Nov 01 '21 03:11 GabbyMrH

顺带贴一张支付流程图吧: image

GabbyMrH avatar Nov 01 '21 03:11 GabbyMrH

解答有点晚了, 图片 你说的【如果我发起失败了】会返回html,那你可以用一下就知道了,支付宝网页支付根本就没有像微信那种预订单的概念,在支付宝这边生成的网页就是用来发起支付的(这里并且生产预订单)

egzosn avatar Mar 20 '22 16:03 egzosn