微信H5支付mweb回调页面能否设置时间?

青的铜 2018-03-22 05:28:40
最近开发微信H5支付, 手机浏览器微信H5支付, 获取到mweb后, 拼上支付回跳页面后, 通过sendRedirect发起请求, 微信支付完成后, 有些浏览器如火狐,很快就收到回跳页面, 此时微信支付处理并未完成, 因此,即使此时进行订单查询, 也是NOPAY状态;

初步想到解决办法
1、在微信h5支付调起后, 回跳页面后增加延迟,已等待微信支付处理完成;这样的问题就是用户取消支付后, 回跳页面等待时间过长;
2、能否在mweb发起请求时设置回跳页面的响应时间,以便用户在支付后, 微信不是马上发起回跳, 而是经过响应时间后, 才发起回跳.

哪位大神帮忙看一下。

zackwang@126.com
...全文
645 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona1984 2018-03-26
  • 打赏
  • 举报
回复
引用 4 楼 zackwang2006 的回复:
[quote=引用 2 楼 maradona1984 的回复:] 参考别的系统的支付完成后的交互,修改交互,避免这种可能性发生,比如跳回页面轮询支付结果,查到结果才跳到成功页面
但是如果用户不支付或者取消支付的话, 我们无法判断,而且没有回调通知的;即使轮询也解决不了;[/quote] 没有支付就显示未支付呗...
maradona1984 2018-03-23
  • 打赏
  • 举报
回复
参考别的系统的支付完成后的交互,修改交互,避免这种可能性发生,比如跳回页面轮询支付结果,查到结果才跳到成功页面
computerclass 2018-03-23
  • 打赏
  • 举报
回复
微信web开发者工具 你试试,调试效果不错
青的铜 2018-03-23
  • 打赏
  • 举报
回复
引用 2 楼 maradona1984 的回复:
参考别的系统的支付完成后的交互,修改交互,避免这种可能性发生,比如跳回页面轮询支付结果,查到结果才跳到成功页面
但是如果用户不支付或者取消支付的话, 我们无法判断,而且没有回调通知的;即使轮询也解决不了;
2018-09-03 php服务端微信支付整理SDK,封装,如果喜欢请给个好评!谢谢 说明: 配置在 WeChatConfig文件下 环境:php5.6,基于tp5开发 调用统一下单接口: include_once EXTEND_PATH . 'WeChatSDK/WeChatSDK.php'; $data = $this->getOrderInfo($pay_sn); if (!$data) { return $this->resultCode(-2019, '订单不存在或已支付'); } $WeixinPay = new \WeChatSDK(); if ($trade_type == 'JSAPI') { //目前未有此功能 $openid = ''; $product_id = ''; } if ($trade_type == 'NATIVE') { $openid = ''; $product_id = $pay_sn; } if ($trade_type == 'MWEB') { $openid = ''; $product_id = $pay_sn; } if ($trade_type == 'APP') { $openid = ''; $product_id = $pay_sn; } $out_trade_no = $pay_sn; $result = $WeixinPay->setWeiXinPay($data['pay_body'], $data['pay_detail'], $data['pay_money'] * 100, $out_trade_no, $red_url, $trade_type, $openid, $product_id); APP加密:$WeChatSDK->GetAppParameters($result['data']); web编码 $WeChatSDK->GetMwebApiParameters(); jsapi:WeChatSDK-> GetJsApiParameters(); 回调调用: include_once EXTEND_PATH . 'WeChatSDK/WeChatSDK.php'; Log::write("gwgwgwgw---------------------------------进入异步回掉"); $postStr = file_get_contents('php://input'); Log::write("gwgwgwgw---------------------------------" . $postStr); $WeChatSDK = new \WeChatSDK(); if (!empty($postStr)) { $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $check_sign = $WeChatSDK->checkSign($postObj, $postObj->sign); Log::write('-----check_sign-------' . $check_sign . '------------check_sign--------------'); if ($postObj->result_code == 'SUCCESS' && $check_sign == 1) { model('order', 'service')->affirmPayment($postObj->out_trade_no); $xml = "<xml> <![CDATA[SUCCESS]]>

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧