微信,支付宝,百度钱包三种APP支付成功关闭浏览器

本文介绍了如何在不同类型的移动应用(如微信、支付宝、百度钱包)中正确关闭页面的方法,同时提供了通过用户代理字符串来判断当前应用环境的示例代码。此外,还展示了如何监听返回、上一页操作并维护浏览器历史记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面是三种移动app的关闭方式:

?
1
2
3
WeixinJSBridge.call( 'closeWindow' ); //微信
AlipayJSBridge.call( 'closeWebview' ); //支付宝
BLightApp.closeWindow(); //百度钱包

通过浏览器的头判断是那种浏览器:

?
1
2
3
4
5
6
7
8
var ua = navigator.userAgent.toLowerCase();
f(ua.match(/MicroMessenger/i)== "micromessenger" ) {
alert( "微信客户端" );
} else if (ua.indexOf( "alipay" )!=-1){
alert( "支付宝客户端" );
} else if (ua.indexOf( "baidu" )!=-1){
alert( "百度客户端" );
}

对返回、上一页、后退进行监听,并对history中放入当前页地址:

?
1
2
3
4
5
6
7
8
9
10
11
12
$(function(){
pushHistory();
window.addEventListener( "popstate" , function(e) {
}, false );
function pushHistory() {
var state = {
title: "title" ,
url: "#"
};
window.history.pushState(state, "title" , "#" );
}
});

整个实现完整代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$( function (){
pushHistory();
window.addEventListener( "popstate" , function (e) {
pushHistory();
var ua = navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i)== "micromessenger" ) {
WeixinJSBridge.call( 'closeWindow' );
} else if (ua.indexOf( "alipay" )!=-1){
AlipayJSBridge.call( 'closeWebview' );
} else if (ua.indexOf( "baidu" )!=-1){
BLightApp.closeWindow();
}
else {
window.close();
}
}, false );
function pushHistory() {
var state = {
title: "title" ,
url: "#"
};
window.history.pushState(state, "title" , "#" );
}
});
### 微信小程序集成支付宝微信支付的方法 #### 集成支付宝支付 对于希望在其应用中提供多种支付选项的小程序开发者来说,在微信小程序中集成支付宝支付是一个可行的选择。然而,由于微信官方政策的原因,直接在微信小程序环境中调用微信之外的其他支付渠道并不被支持。因此,为了实现这一目标,通常采用`<web-view>`组件来加载外部网页的方式间接完成支付宝H5支付流程[^1]。 具体实施步骤如下: - **准备阶段** - 注册成为支付宝开放平台开发者账号,并创建相应的APP获取AppID。 - 完善商户认证资料以便后续能够顺利发起真实交易请求。 - **前端开发** - 使用HTML/CSS/JavaScript构建适用于移动端浏览器访问的H5页面作为支付界面模板。 - 将此H5页面部署至可公网访问的位置(如阿里云OSS),确保其URL稳定可靠。 - **后端接口搭建** - 利用Spring Boot框架快速建立RESTful API服务器处理来自客户端的各种业务逻辑操作。 - 实现预下单API用于向支付宝发送订单详情并返回可用于唤起支付控件的数据参数。 - **微信小程序配置** - 在项目文件夹下找到`app.json`或对应页面级别的`.json`配置项加入新字段指定要引入的WebView路径。 - 编写WXML/WXS代码片段定义展示区域并通过`src`属性绑定之前设置好的远程地址链接。 ```html <!-- WXML --> <navigator url="/pages/payment/payment"> <button type="primary">前往付款</button> </navigator> <web-view src="{{paymentUrl}}"></web-view> ``` ```javascript // JS (Page Logic) const app = getApp(); Page({ data: { paymentUrl: '' }, onLoad() { wx.request({ url: 'https://your-server.com/api/alipay/precreate', // 替换成实际的服务端接口 method: 'POST', success(res){ this.setData({ paymentUrl: res.data }); } }) } }) ``` #### 集成微信支付 相比之下,接入微信自身的支付体系则更加简便快捷。只需按照官方文档指引完成必要的准备工作之后即可轻松启用该特性。以下是简化的指导说明: - **前期筹备工作** - 获取企业资质审核通过后的WeChat Pay Merchant ID以及API Key等敏感凭证信息。 - 下载安装最新版本SDK工具包,熟悉其中涉及的各项函数用途及其调用方法[^2]。 - **服务端编程** - 构建安全可靠的HTTPS通道保障通信过程中的数据传输安全性。 - 开发统一收单接口负责接收从小程序传来的商品描述、金额数目等相关要素形成正式订单记录。 - 调用统一下单API提交上述整理所得的信息给腾讯财付通后台等待响应结果确认是否成功生成有效的prepay_id令牌。 - **客户端编码** - 参考官方样例编写JS脚本控制按钮点击事件触发异步HTTP POST请求携带必要参数传递给远端服务器进行下一步验证校验。 - 接收到含有签名在内的回调消息体后利用内置wx.chooseWXPay()方法启动本地钱包应用程序执行扣款动作。 ```javascript // JavaScript Example for WeChat Payment Initiation function payOrder(orderId, totalFee) { const that = this; wx.request({ url: `${baseUrl}/weixin/unifiedorder`, method: "POST", header: {'content-type': 'application/json'}, data: JSON.stringify({ body: `Product Order ${orderId}`, out_trade_no: orderId, total_fee: parseInt(totalFee * 100), // Convert to cents spbill_create_ip: ipAddr, notify_url: callbackUrl, trade_type: "JSAPI" }), success(response) { let respData = response.data; if (!respData.return_code || !respData.result_code || respData.return_code !== 'SUCCESS' || respData.result_code !== 'SUCCESS') { console.error('Failed to create order:', respData); return; } wx.requestPayment({ timeStamp: respData.timeStamp, nonceStr: respData.nonce_str, package: `prepay_id=${respData.prepay_id}`, signType: 'MD5', paySign: respData.sign, success(payResp) { /* Handle successful payment */ }, fail(err) { /* Deal with failed attempt */ } }); } }); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值