vue3 微信支付和支付宝支付 H5和微信内置浏览器
vue3微信支付和支付宝支付
// 判断是否为微信内置浏览器
let browser: any = navigator.userAgent.toLowerCase();
let isWechat: any = browser.match(/MicroMessenger/i) == "micromessenger";
// 支付宝支付
if (gather.pay_type == 2) {
orderPay({
pay_type: pay_typeA,
order_sn: order_snA,
gateway: gatewayA,
wap_return_url: wap_return_urlA,
}).then((res: any) => {
if (res.code == 0) {
aliPay(res);
}
});
} else {
// 微信支付
if (!localStorage.OPENID && route.query.openid) {
localStorage.OPENID = route.query.openid;
}
gather.openid = isWechat ? localStorage.OPENID : "";
if (isWechat && !localStorage.OPENID) {
// 获取openid
let url =
window.location.origin +
"/get_wx_info?url=" +
encodeURIComponent(window.location.href);
window.location.href = url;
} else {
orderPay({
pay_type: pay_typeA,
order_sn: order_snA,
gateway: gatewayA,
wap_return_url: wap_return_urlA,
open_id: gather.openid,
}).then((res: any) => {
if (res) {
// 微信H5
if (!isWechat) {
window.location.href =
res.data.option.mweb_url + wap_return_urlA;
return;
} else {
// 微信内置
wechatPay(res.data.option);
}
}
});
}
} const wechatPay = (result: object): void => {
//封装请求微信支付接口数据
var request_data = {
appId: (result as any).appId,
timeStamp: (result as any).timeStamp + "",
nonceStr: (result as any).nonceStr,
package: (result as any).package,
signType: "MD5",
paySign: (result as any).paySign,
};
if (typeof (window as any).WeixinJSBridge == "undefined") {
if ((document as any).addEventListener) {
(document as any).addEventListener(
"WeixinJSBridgeReady",
onBridgeReady(request_data),
false
);
} else if ((document as any).attachEvent) {
(document as any).attachEvent(
"WeixinJSBridgeReady",
onBridgeReady(request_data)
);
(document as any).attachEvent(
"OnWeixinJSBridgeReady",
onBridgeReady(request_data)
);
}
} else {
onBridgeReady(request_data);
}
};
//微信方法
const onBridgeReady = (request_data: object): void => {
(window as any).WeixinJSBridge.invoke(
"getBrandWCPayRequest",
request_data,
(res: any) => {
if (res.err_msg == "get_brand_wcpay_request:ok") {
Notify({ type: "success", message: "支付成功" });
router.push({
path: "/mineSubject",
});
} else if (res.err_msg == "get_brand_wcpay_request:cancel") {
} else if (res.err_msg == "get_brand_wcpay_request:fail") {
}
}
);
};
支付宝支付方法 const aliPay = (res:any)=>{
const div = document.createElement('div');
div.innerHTML = res.data.option; //res.data是返回的表单
console.log('res.option',res.data.option); document.body.appendChild(div);
(document as any).forms.alipaysubmit.submit();
}
vue3 微信支付和支付宝支付 H5和微信内置浏览器的更多相关文章
- 微信内分享第三方H5链接无法使用内置浏览器打开的解决方案
很多朋友在微信内想分享转发H5链接的时候都会很容易碰到H5链接在微信内无法打开或在微信内无法打开app下载页的情况.通常这种情况微信会给个提示 “已停止访问该网址” ,那么导致这个情况的因素有哪些呢, ...
- 微信支付之h5方式(非微信内置浏览器中支付)
这两天完成了公司网站手机和PC端的支付对接,就是支付宝和微信. 对接完后有所感触,我们来聊一聊,微信支付的坑,为什么这么说呢,因为我在对接完支付宝后是很愉快的,基本上在demo上稍加修改就ok了, 对 ...
- APIcloud制作APP 微信支付与支付宝支付
首先要在云端绑定相应模块如alipay和wxpay其次编写代码. 配置区域 var cfg = { webName:'',//APP名字 payDebug:true, isUseWxPay:true, ...
- apicloud含有微信支付。支付宝支付和苹果内购的代码
apicloud含有微信支付.支付宝支付和苹果内购的代码 <!DOCTYPE html> <html> <head> <meta charset=" ...
- 微信支付、支付宝支付和QQ钱包支付
最近忙于对接微信支付和支付宝支付,注册微信公众号,认证公众号,注册微信支付商户号并进行认证: 签约支付宝支付产品(手机网站支付.PC网站支付),注册支付宝企业账号(企业账号权限更大): 注册QQ钱包商 ...
- 微信支付与支付宝支付java开发注意事项
说明:这里只涉及到微信支付和淘宝支付 以官网的接口为准,主要关注[网关].[接口].[参数][加密方式][签名][回调] 第一步,了解自己的项目要集成的支付方式 常见的有扫码支付.网页支付.APP支付 ...
- 用js限制网页只能在微信内置浏览器或支付宝内置浏览器中打开
function is_weixinOrAli(){ var ua = navigator.userAgent.toLowerCase(); //判断浏览器的类型 if (ua.match(/Micr ...
- 微信内置浏览器浏览H5页面弹出的键盘遮盖文本框的解决办法(转)
最近在做微信公众号的内嵌页面,发现点击输入框时键盘盖住文本框,找到一段代码解决了这个问题. iOS和android手机都已亲测,需要的可以直接拷贝到代码中使用. js代码如下: $(function ...
- 如何判断微信内置浏览器(JS & PHP)
转自:http://blog.wpjam.com/m/is_weixin/ 为什么要进行判断呢?answer:微信授权登录,微信支付都可以 微信内置浏览器的 User Agent 如何判断微信内置浏览 ...
- js判断微信内置浏览器
做了一个h5页面来下载app,但如果页面是用微信扫一扫打开的,点击下载按钮下载不了app,原因是微信内置浏览器屏蔽了下载链接.所以增加了检测,如果用户是用微信浏览器打开的,则提示用户使用浏览器打开.那 ...
随机推荐
- Unity 保存截图功能
1.下面是实现代码 using System.Collections; using System.Collections.Generic; using UnityEditor; using Unity ...
- PADS生成CAM文档(Gerber)
CAM 一个正常的CAM文档应包括n+8层,n指的是层数,8指的是: 顶层丝印层,Silkscreen TOP 底层丝印层,Silkscreen BOTTOM 顶层组焊层,Solder Mask ...
- Bert使用
首先打开网址:https://huggingface.co/models 下载想用的模型
- linux下安装jdk8,nginx
jdk8(官网下载的是jdk-8u231-linux-x64.tar.gz) 1.在/usr/local这路径下建一个jdk的文件夹,将下载好的jdk-8u231-linux-x64.tar.gz上传 ...
- Gtiee_上传本地项目
Git_本地代码上传到码云 本文仅作学习记录,方便日后翻看 创建本地仓库 找到自己本地代码的文件夹,打开Git GUI Here,输入git init创建本地仓库,当前文件夹下有.git文件表示创建成 ...
- ThinkPHP接收header自定义参数
// 请求拦截,配置Token等参数 Vue.prototype.$u.http.interceptor.request = (config) => { config.header['conte ...
- 第二周day7
第二周day7,星期天 所用时间:0 代码量:0 博客量:0 所学知识:提高社交能力,多锻炼.
- java向上转型知识点收录
package tex2polymorphism; /*总结如下: * 对于多态,可以总结它为: 一.使用父类类型的引用指向子类的对象: 二.该引用只能调用父类中定义的方法和变量: 三.如果子类中重写 ...
- docker报错:报错br-xxxx 之Docker-Compose 自动创建的网桥与局域网络冲突
故障描述: 当我使用docker-compose的方式部署内网的harbor时.它自动创建了一个bridge网桥,与内网的一个网段(172.18.0.1/16)发生冲突,docker 默认的网络模式是 ...
- WebSocket服务
package com.sxsoft.admin.Component; import com.alibaba.fastjson.JSON; import io.netty.handler.codec. ...