h5调用JSAPI支付

这段代码展示了在H5环境下如何调用微信支付接口进行支付操作。首先,通过后台接口获取支付所需参数,然后利用WeixinJSBridge的getBrandWCPayRequest方法触发支付请求。支付成功后,显示提示并跳转到支付成功页面。若支付失败,则显示错误提示。

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

	// #ifdef H5
				//调用后台接口
				
					NET.request(API.gotojsapiPay, submitResult, 'POST').then(res => {
						WeixinJSBridge.invoke(
							'getBrandWCPayRequest', {
								"appId": res.data.appId, //公众号ID,由商户传入     
								"timeStamp": res.data.timeStamp, //时间戳,自1970年以来的秒数     
								"nonceStr": res.data.nonceStr, //随机串     
								"package": res.data.package,
								"signType": res.data.signType, //微信签名方式:     
								"paySign": res.data.paySign //微信签名 
							},
							function(res) {
								console.log(res, '支付成功的信息')
								// 支付成功后的回调函数
								uni.showToast({
									icon: 'none',
									title: '支付成功'
								})
								uni.navigateTo({
									url: 'paySuccessful?orderId=' + that.orderId//返回成功支付页面
								})
								if (res.err_msg == "get_brand_wcpay_request:ok") {
									console.log('oooo')
									// 使用以上方式判断前端返回,微信团队郑重提示:
									//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
								}
							});
						//console.dir(res)
						// location.replace(res.data.mwebUrl)
						// window.location.replace(url)
					}).catch(err => {
						this.submitActive = true
						uni.hideLoading()
						uni.showToast({
							title: '支付失败',
							icon: 'none'
						})
					})

### 实现HTML5网页中的微信支付支付宝支付集成 为了在 HTML5 页面中实现微信支付支付宝支付的功能,通常需要服务器端的支持来处理支付请求并返回相应的参数给前端。下面分别介绍两种支付方式的具体实现方法。 #### 微信支付集成 对于微信支付,在 H5 中主要通过调用微信 JSAPI 来完成支付流程。这涉及到获取预支付交易会话标识(prepay_id),该操作需由服务端发起,并传递必要的订单详情至微信接口以换取 prepay_id[^1]。 ```javascript // 前端 JavaScript 代码片段用于初始化微信JS-SDK 并调起支付 wx.config({ debug: false, // 开启调试模式, appId: '', // 必填,公众号的唯一标识 timestamp: , // 必填,生成签名的时间戳 nonceStr: '', // 必填,生成签名的随机串 signature: ''// 必填,签名 }); function onBridgeReady() { WeixinJSBridge.invoke( 'getBrandWCPayRequest', { "appId": "", // 公众号名称,由商户传入 "timeStamp": "", // 时间戳,自1970年以来的秒数 "nonceStr": "", // 随机串 "package": "", "signType": "", // 微信签名方式: "paySign": "" // 微信签名 }, function(res){ if(res.err_msg == "get_brand_wcpay_request:ok" ) {} // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。 } ); } ``` 当准备好上述信息之后,可以利用 `WeixinJSBridge` 对象提供的 API 方法触发用户的支付行为。注意这里的配置项应来自安全渠道获得的服务端响应数据。 #### 支付宝支付集成 至于支付宝,则可通过其官方提供的 SDK 或者直接构建表单提交的方式来启动支付过程。这里采用后者作为例子说明: ```html <!-- 创建隐藏的form元素 --> <form id="alipayForm" action="" method="POST"> </form> <script type="text/javascript"> document.getElementById('alipayForm').action = ''; // 设置实际url地址 var hiddenField = document.createElement("input"); hiddenField.setAttribute("type", "hidden"); hiddenField.setAttribute("name", ""); hiddenField.setAttribute("value", ""); // 将从后台拿到的数据填充到这里 document.getElementById('alipayForm').appendChild(hiddenField); document.getElementById('alipayForm').submit(); </script> ``` 此部分逻辑同样依赖于服务端预先准备好的支付链接以及相关参数,这些都应当按照阿里云文档指引进行设置[^2]。 综上所述,无论是哪种支付手段,均离不开可靠的后端支持来进行鉴权认证、创建订单等核心业务逻辑的操作;而前端仅负责展示界面及执行最终一步——即唤起对应的支付客户端应用或浏览器内置插件完成付款动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值