uniapp实现微信小程序支付(前端)详细代码

 更新时间:2024年07月12日 11:24:11   作者:SakuraPowerc  
这篇文章主要给大家介绍了关于uniapp实现微信小程序支付(前端)的相关资料,发现网上教程很多,单只针对小程序的简单清晰的流程却很少,文字通过代码介绍的非常详细,需要的朋友可以参考下

1.本篇主要是介绍uniapp微信小程序支付以及小程序内置网页跳转H5页面两个方向的微信支付流程

2.微信小程序内微信支付

uni.request({
    url:"请求路径",
    method:"方法",
    data:{
        后端需要的数据
    },
    success(payRes){
        //payRes这里主要有几个参数后面会调取uni的支付接口需要使用,下面会介绍每个数据
        //这个请求结束后就是前端最重要的步骤了,需要拉起支付密码框来完成支付
        
        uni.requestPayment({
		    "provider": "wxpay",//支付方式  
			"timeStamp":payRes.data.timeStamp,//时间戳
			"nonceStr":payRes.data.nonceStr,//随机字符串
			"package":payRes.data.package,//接口返回的prepay_id
			"signType":payRes.data.signType,//签名算法,需要与后台下单时一致
			"paySign":payRes.data.paySign,签名
			success: function (resSuccess) {
				//触发该success时已经是输入密码支付成功后触发,可做一些页面跳转和成功提示						
             },
									
			fail: function (err) {
                //支付失败时出发,比如取消支付、余额不足等
			}
		});
        
    }
})

3.小程序内部跳转H5页面进行微信支付

1.H5支付因为是非微信内部的支付,所以需要安装使用微信的JS-SDK包来实现,所以实现写法会有一些改变,但是大同小异。

2.现在控制台输入指令(安装了node.js的情况下,我这里是16.6的版本)npm i jweixin-module -S

<script>
//这里两种引入方式 一种是node的require,还有一种就是常用的import的方式引入 效果都一样
const jweixin = require("jweixin ")

export default {
    data(){
        return {

        }        
    },

    methods:{

        uni.request({
            url:"请求路径",
            method:"方法",
            data:{
                后端需要的数据
            },
            success(payRes)=>{

                 payMent(){

                //首先要对jweixin进行初始化配置
                jweixin.config({
                    debug:false,//是否开启调度模式,开启测试支付时会有弹窗
                    appId: payRes.data.appId, // 公众号的唯一标识
					timestamp: payRes.data.timeStamp, // 生成签名的时间戳
					nonceStr: payRes.data.nonceStr, // 生成签名的随机串
					signature: payRes.data.signType, //签名
					jsApiList: ['chooseWXPay'] // 必填
                })

                jweixin.chooseWXPay({
	                timestamp: payRes.data.timeStamp, // 支付签名时间戳
					nonceStr: payRes.data.nonceStr, // 支付签名随机串,不长于 32 位
					package: payRes.data.package, // 统一支付接口返回的prepay_id参数值
					signType: payRes.data.signType, // 签名方式
					paySign: payRes.data.paySign, // 支付签名
                    success(res){
                        //成功
                    },
                    fail(res){
                        //失败
                    }
                })
             }
        
            }
        })
    }
}
</scrpit>

4.小程序如何用内置浏览器跳转其他H5页面

1.小程序内没法直接跳转至某个网页(我没找到),但是可以通过<web-view>来嵌套H5网页,默认全屏,跳转网址写在src中。

2.我这里的H5页面是有uni生成的,自动生成的H5项目是hash模式,如果我们需要向H5页面传参,在src中写网址的时候就必须带#/,例如:http://192.168.0.1/#/?id=sadas。也可以在manifest.json中将路由模式改为history

3.我把web-view单独写了一个页面,将H5的网址利用路由传参的方式传递个web-view页面(因为需要传入用户信息),受到路由长度的限制,需要先利用encodeURIComponent对格式进行转换,在web-view页面再用decodeURIComponent对传入参数进行解析

//跳转页面
<script>
export default{
    methods:{
        goPage(){
            uni.navihateTo({
                url:`/page/webView/webView?url=${encodeURIComponent("访问地址"))}`
            })
        }
    }        
}
</script>
//web-view
<template>
    <web-view :src="url"></web-view>
</template>
<script>
export default{
    data(){
        return {
            url:""
        }
    }
    onLoad(option){
        this.url =decodeURIComponen(option.url)
    }
}
</script>

5.过程中遇到的问题

1.H5写的微信支付,安卓无法使用,ios没问题,找了半天没找到解决方案

总结

到此这篇关于uniapp实现微信小程序支付(前端)的文章就介绍到这了,更多相关uniapp微信小程序支付内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于js实现逐步显示文字输出代码实例

    基于js实现逐步显示文字输出代码实例

    这篇文章主要介绍了基于js实现逐步显示文字输出代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • jQuery 名称冲突的解决方法

    jQuery 名称冲突的解决方法

    jQuery 使用 $ 符号作为 jQuery 的简介方式。某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号。
    2011-04-04
  • 原生JS实现响应式瀑布流布局

    原生JS实现响应式瀑布流布局

    本文给大家分享的是使用原生的javascript实现的响应式的瀑布流布局的方法和源码,非常的实用,有需要的小伙伴可以参考下。
    2015-04-04
  • 原生JavaScript实现贪吃蛇游戏

    原生JavaScript实现贪吃蛇游戏

    这篇文章主要为大家详细介绍了原生JavaScript实现贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-11-11
  • JavaScript子窗口调用父窗口变量和函数的方法

    JavaScript子窗口调用父窗口变量和函数的方法

    这篇文章主要介绍了JavaScript子窗口调用父窗口变量和函数的方法,涉及JavaScript窗口调用的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • js里取容器大小、定位、距离等属性搜集整理

    js里取容器大小、定位、距离等属性搜集整理

    取容器大小、定位、距离等在实际中使用的比较广泛,下面与大家分享下小编整理的js相关代码,有此需求的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • 微信开发 使用picker封装省市区三级联动模板

    微信开发 使用picker封装省市区三级联动模板

    这篇文章主要学习微信开发,如何使用picker封装省市区三级联动模板,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • swiper插件自定义切换箭头按钮

    swiper插件自定义切换箭头按钮

    这篇文章主要为大家详细介绍了swiper插件自定义切换箭头按钮,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12
  • JavaScript用JSONP跨域请求数据实例详解

    JavaScript用JSONP跨域请求数据实例详解

    Javascript跨域访问是web开发者经常遇到的问题,什么是跨域,就是一个域上加载的脚本获取或操作另一个域上的文档属性。下面这篇文章主要介绍了JavaScript用JSONP跨域请求数据的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01
  • js document.write()使用介绍

    js document.write()使用介绍

    一个最基本的JavaScript命令是document.write。这个命令简单地打印指定的文本内容到页面上。为了逐字打印文本,在打印的文本字符串加上单引号
    2014-02-02

最新评论