移动端H5支付(微信和支付宝)
我们直接进入主题吧,先说功能:
1、用户通过我们的页面输入充值帐号和金额调起支付(微信或者支付宝),支付成功返回获取支付结果。
2、微信支付成功后重定向到指定页面(没有设置重定向地址的话,默认返回调起支付的页面,支付宝同理)。
3、支付宝支付成功后重定向到指定页面。
4、重定向地址带参数返回。
5、支付成功后,回到页面开始进行轮询,获取支付成功的结果后结束轮询。
下面是我的支付页面结构图:pay.html

至于调起支付的接口需要传什么参数,你们要和后台的哥们沟通好。
请求成功后,微信返回的是一个超链接,如图:

支付宝返回的是一个表单,如图:

这里就已经在后台生成订单号了,也就是已经存在该订单了,接下来是去支付,代码附上:
if ('选择微信支付') {
    // 微信返回的是超链接 https
    //  我这里使用redirect_url来让支付成功后重定向回指定页面,并且后面带了参数,参数为订单ID和用户ID和充值金额。
    let return_url = `${payChannelData.payInfo}&redirect_url=${returnAdreess}?userInfomation=${cpOrderId}|${userId}|${money}`;
    location.href = return_url;
} else if ('选择支付宝支付') {
    // 支付宝返回是个表单 <form>
    let divForm = document.getElementsByTagName('divform');
    if (divForm.length) {
    document.body.removeChild(divForm[0]);
    }
    const div = document.createElement('divform');
    div.innerHTML = payChannelData;
    document.body.appendChild(div);
    if (!payTools.isIOS) {
    //    ios手机可以直接调起支付,安卓需要执行以下代码。
    document.forms[0].setAttribute('target', '_blank'); // 新开窗口跳转
    }
    document.forms[0].submit();
}
至此,整个支付流程就完成了。
补充一下,细心的人应该发现了我上面只讲到微信的回调地址,而没有支付宝的回调地址。
支付宝的回调地址的配置需要和后端协调好,让他在发起订单的接口增加一个字段 returnUrl(名字你们自己协调),然后把回调地址传给后台就可以了。
微信的回调地址配置,其实官网是有说明的:

微信支付传送门:https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4
开发中遇到的问题:

官方给出的答复是:


版权声明:本文为博主原创文章,转载需注明出处。https://www.cnblogs.com/silent007/p/12878342.html
*********************************** END ***********************************
移动端H5支付(微信和支付宝)的更多相关文章
- h5仿微信、支付宝数字键盘|微信支付键盘|支付宝付款键盘
		
html5仿微信支付数字键盘|仿支付宝键盘|h5仿微信密码输入键盘|自定义数字键盘 很早之前由于项目需求,就有开发过一个h5仿微信支付键盘,这几天就把之前的数字键盘模块独立出来,重新整理开发成demo ...
 - 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结
		
最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付.APP微信支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存. 先说注意 ...
 - C#版微信公众号支付|微信H5支付|微信扫码支付问题汇总及解决方案总结
		
最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存.代码在文章结尾处,有需要的 ...
 - 微信h5支付/jsapi支付/小程序支付
		
一. 介绍------------------------------------------------------------------ 微信支付官方开发文档: https://pay.wei ...
 - 黄聪:详解申请微信h5支付方法,开通微信h5网页支付接口(转)
		
版权声明:图文并茂的微信小程序教程!欢迎转载,请保留作者名字和链接:商业合作请联系子恒老师助理 QQ : 2334512685 https://blog.csdn.net/towtotow/artic ...
 - 详解申请微信h5支付方法,开通微信h5网页支付接口(转)
		
现在大街小巷的商家都在使用微信支付,但是一些商家使用的是个人微信收款,这个虽然很便利,但是如果你想要数据统计汇总,让客户在网络上在线付款,就需要用到微信的h5支付. 微信h5支付 今天子恒老师跟你分享 ...
 - uni-app - 支付(app支付、小程序支付、h5(微信端)支付)
		
App支付.小程序支付.h5(微信端)支付 APP支付(内置) appPay.js /** * 5+App支付,仅支持支付宝以及微信支付 * * 支付宝Sdk集成,微信sdk未集成 * * @para ...
 - Android H5调起原生微信或支付宝支付
		
Android H5调起原生微信或支付宝支付 WebView调用原生微信或支付宝回调:其原理就是在shouldOverrideUrlLoading(final WebView view, String ...
 - ThinkPHP 5 整合支付宝微信支付(支付宝H5,微信H5、APP支付、公众号支付)
		
因项目没有PC站所以没有写电脑网站支付. Pay.php支付控制器 <?php // +----------------------------------------------------- ...
 
随机推荐
- day8作业
			
# 一:for循环 # 1.1 for循环嵌套之打印99乘法表 for i in range(1,10): for j in range(1,i+1): print("{} * {} = { ...
 - numpy basic sheatsheet
			
NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库.NumPy 通常与 SciPy(Scien ...
 - [安全] Kali Linux安装TheFatRat
			
一.解决访问国外网络的问题 由于字符敏感,以下所有vray的第二位都需要加上"2". 1.使用vray客户端 前提条件:拥有一个海外vray服务器提供socks5代理. 1)下载v ...
 - srt字幕翻译
			
需要把字幕名改成i.txt 有有道和谷歌 代码: #Author:Chenglong Qian #Copyright :Chenglong Qian import json import reques ...
 - 【题解】P2024 [NOI2001]食物链 - 数据结构 - 并查集
			
P2024 [NOI2001]食物链 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 动物王国中有三类动物 \(A,B ...
 - vscode--常用插件&同步
			
1.setting.json文件 { "files.autoSave": "off", "extensions.ignoreRecommendatio ...
 - 杂园日记-获取URL参数
			
function getUrlParams(name, url){ var locationUrl = window.location.search; if(url){ var s =url.inde ...
 - python学习13类2之封装
			
'''''''''面向对象三大特性:封装,继承,多态1.封装: 类中以_或者__的属性,都是私有属性,禁止外部调用.'''class Student(object): def __init__(sel ...
 - 存储-raid
 - vue + ArcGIS 地图应用系列一:arcgis api本地部署(开发环境)
			
封面 1. 下载 ArcGIS API for JavaScript 官网地址: https://developers.arcgis.com/javascript/3/ 下载地址:http://lin ...