由于业务需要,公司要把支付从app端剥离开来改成H5支付,由于敏感信息,基本上都是后端处理,前端只是打开链接,但是由于微信奇葩的,支付无论是否成功都会回调到当时支付的那个页面,并且中间会有一个5s的中间页,并且支付后回调到这个页面是无法刷新的,无法刷新就没办法知道支付状态;除此之外,还有个问题就是微信支付点击完成或者放弃支付会回调到了safai浏览器,这个问题很坑爹,无论你是否redirect_url他都会这样。
问题解决方案
针对第二个问题,这个网上说对redirect_url进行urlencode处理和不给returnurl我实行了都不行,可能不针对我的问题吧!最后是ios这边解决的,大概就是配置了一个自己支付的域名,把这个给你们ios就行了 https://www.jianshu.com/p/90db7dfb075c
第一个问题我尝试过本地存储不可行,因为无法判断第一次还是第二次进来,所以最好还是走的微信官网给出的方案,给他一个弹框,让用户自己去判断。
下面我就直接吧代码全部copy上来了,中间有按钮需要优化,这块你们自己优化吧!
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script src="./js/AES/aes.js"></script>
<script src="./js/AES/mode-ecb.js"></script>
<script src="./js/AES/pad-nopadding.js"></script>
<script src="https://cdn.bootcss.com/jsencrypt/3.0.0-beta.1/jsencrypt.js"></script>
<script src="./js/AES/encry-comm.js"></script>
<script src="./js/comm.js"></script>
</head>
<body>
<div class="pay_box">
<span&