vue实现H5支付(微信,支付宝)

这篇具有很好参考价值的文章主要介绍了vue实现H5支付(微信,支付宝)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.判断浏览器是微信还是支付宝或其他浏览器
2.微信浏览器调用微信支付的方法(调用后台接口创建订单,需要微信用户唯一标识openid;接口返回微信支付所需的支付参数)
3.支付宝浏览器支付方法文章来源地址https://www.toymoban.com/news/detail-595779.html

//支付
payBtn() {
	var ua = navigator.userAgent.toLowerCase();
	var isWeixin = ua.indexOf('micromessenger') != -1;
	var isAlipay = ua.indexOf('alipayclient')  != -1;
	if (isWeixin) { //判断当前环境是否是微信浏览器
		//是微信浏览器   调用公众号支付 
		let data = {
			其他参数与后台协商
			openid: 唯一标识,
		}
		createOrder(data).then((res) => {
			if (res.status == 200) {
				// console.log(res.data) 接口返回微信所需支付参数
				let data = {}
				if(res.message == "您还有待支付的订单"){
					data = res.data.pay_info;
				}else{
					data = res.data;
				}
				this.wxpayOrder(data);
			} else {
				Toast.fail(res.message);
			}
		}).catch((res) => {
			Toast.fail("请稍后重试");
		});
	} else if(isAlipay){
		// 其他浏览器  ,直接调用支付接口
		this.alipay()
		// Toast.fail("支付宝");
	}else {
		Toast.fail("请使用微信或支付宝浏览器");
	}

},
// 支付宝支付  请求接口,返回支付宝支付链接,跳转
alipay(){
	let data = {
		与后台约定支付参数
	}
	createOrder(data).then((res) => {
		if (res.status == 200) {
			var url = res.data.qrcode_url;
			window.location.href = url;
		} else {
			Toast.fail(res.message);
		}
	}).catch((res) => {
		Toast.fail("请稍后重试");
	});
},


// 微信支付
wxpayOrder(data) {
	console.log(111)
	let payParam = {
		appId: data.appId,
		nonceStr: data.nonceStr,
		package: data.package,
		timeStamp: data.timeStamp,
		signType: data.paySign,
		paySign: data.paySign,
	}
	if (typeof WeixinJSBridge === 'undefined') {
		if (document.addEventListener) {
			document.addEventListener('WeixinJSBridgeReady', this.onBridgeReady(payParam), false)
		} else if (document.attachEvent) {
			document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady(payParam))
			document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady(payParam))
		}
	} else {
		this.onBridgeReady(payParam)
	}
},
onBridgeReady(e) {
	let that = this
	console.log(e)
	let etr = {
		'appId': e.appId, // 公众号名称,由商户传入
		'timeStamp': e.timeStamp, // 时间戳,自1970年以来的秒数
		'nonceStr': e.nonceStr, // 随机串
		'package': e.package,
		'signType': e.paySign, // 微信签名方式:
		'paySign': e.paySign // 微信签名
	}
	WeixinJSBridge.invoke( //这个对象只有微信浏览器支持
		'getBrandWCPayRequest', etr,
		function(res) {
			if (res.err_msg == 'get_brand_wcpay_request:ok') {
				Toast('支付成功')
				setTimeout(function() {  //支付成功后的展示页面
					that.$router.push({
						path: "/homeIndex",
					});
				}, 1500)
			} else {
				Toast('支付失败:' + res.err_msg)
			}
		})
},

到了这里,关于vue实现H5支付(微信,支付宝)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • app内嵌h5支付功能,跳转支付宝&微信,vue组件

    app内前h5涉及到支付的功能,ios非实物商品实付需要使用ios原生支付方式,实物商品则可以三方支付,主要的实现思路为后端返回跳转支付宝或微信的支付scheme链接,前端进行跳转支付,同时需要实时查询用户的支付状态。 整个过程中复杂的部分在于查询用户支付状态的体验

    2024年02月06日
    浏览(50)
  • Vue3+h5项目用Android支付宝打开白屏,android微信+IOS微信、支付宝打开正常

    微信使用腾讯x5内核,IOS使用系统浏览器内核;so,看看Android支付宝APP使用的内核是什么. 下拉看到支付宝使用的UC浏览器内核; 把浏览器内核检测工具 Browser kernel v2.6 测试查看浏览器内核版本用二维码生成,支付宝扫码进入查看浏览器内核版本;  浏览器内核版本是Chrome 69.0.3497

    2024年02月11日
    浏览(75)
  • 微信H5页面实现微信小程序支付

    背景: 在微信H5页面已经实现了微信JSAPI的网页支付,老板要求把整个业务线快速转移到微信小程序中,作为懒惰的程序员来说,直接把页面嵌套到小程序不就行了。说干就干,在小程序中设置好基本信息后,一预览居然成功了,一切看来是那么顺利,可到了系统的支付环节

    2024年02月14日
    浏览(53)
  • vue3引入JS-SDK实现h5分享小卡片、跳转微信小程序功能

    微信js-sdk官方文档: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html 想要实现的效果: 1.登录微信公众平台,进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 2.通过npm引入js-sdk 安装成功后,可以在package.json中找到\\\"weixin-js-sdk\\\" 3.在main.js中,将js-sdk挂载

    2024年02月11日
    浏览(68)
  • 微信小程序内嵌H5页面实现微信支付

    背景: 在微信H5页面已经实现了微信JSAPI的网页支付,老板要求把整个业务线快速转移到微信小程序中,作为懒惰的程序员来说,直接把页面嵌套到小程序不就行了。说干就干,在小程序中设置好基本信息后,一预览居然成功了,一切看来是那么顺利,可到了系统的支付环节

    2024年02月11日
    浏览(61)
  • vue项目h5端判断所处环境(支付宝、微信、判断安卓和iOS环境)

    一、判断是否为支付宝坏境 isAlipayClient () {     if (navigator.userAgent.indexOf(\\\'AlipayClient\\\') -1) {       return true     }     return false   }, 二、判断安卓还是ios   phoneOs () {     var u = navigator.userAgent,       isAndroid = u.indexOf(\\\'Android\\\') -1 || u.indexOf(\\\'Linux\\\') -1,       isiOS = !!u.match(/(i[^;]+;(

    2024年02月07日
    浏览(73)
  • c# .net framework 实现微信支付v3 h5支付 签名 验签

    接口文档:微信支付-开发者文档 (qq.com)    遇到的问题有   1、签名老验证不过去 :      生成的签名老验证不过    n 不要加转义符   2、 发送的请求老是400  使用工具请求正常。代码不行。   UserAgent = \\\"m.cnblogs.com/WebRequest\\\";    不要留空就行 网址可填自己的

    2024年02月05日
    浏览(46)
  • 微信小程序智慧流调微信小程序设计与实现

    摘 要 自从2020年新冠疫情爆发以来,对全国人民的健康和全国各地区的经济发展都带来了很大的影响,并且新冠肺炎对各个领域带来的影响还未完全消除。近三年以来,全国各地区多次爆发新的疫情,导致许多人被隔离,也导致全国各阶段的学生都需要在家中上网课,对学生

    2024年02月11日
    浏览(45)
  • html+css+js实现微信和支付宝扫码支付前端

    本章教程,主要利用html+css+js技术实现微信和支付宝扫码支付前端页面。 目录 一、效果图预览  (1)支付宝扫码支付 (2)微信扫码支付 二、项目部分源码文件 (1)目录结构 (2)alipay.html (3)wxpay.html 三、项目完整源码下载 下载地址:html+css+js实现微信和支付宝扫码支付

    2024年02月11日
    浏览(93)
  • JavaScript - 判断当前时间是否在指定区间内,例如:9:00~12:00(检查当前时间是否处于规定的两个时间段范围内),适用于 vue.js / uniapp / 微信小程序等前端项目

    例如,您想知道当前时间是否处于 9:00 ~ 12:00 时间区间内,然后根据这个判断进而实现业务逻辑。 如下示例所示, 本文提供一个函数,您只需要传入 2 个时间区间,便可得出当前时间是否在该时间区间范围内: 您可以一键复制,直接粘贴到您的项目中。 您只需要传入开始时

    2024年02月16日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包