iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何利用unicloud生成微信小程序分享码
  • 244
分享到

如何利用unicloud生成微信小程序分享码

摘要

目录一,方案二,实现思路三,完整的代码实现四,坑点总结一,方案 看了官方的文档,获取小程序码有三种,我采用的是第二种:生成数量不受限制的分享码。 对应的官方文档:https://de

一,方案

看了官方的文档,获取小程序码有三种,我采用的是第二种:生成数量不受限制的分享码。

对应的官方文档:https://developers.weixin.qq.com/miniprogram/dev/OpenapiDoc/qrcode-link/qr-code/getUnlimitedQRCode.html

其中又分为Https调用和云开发调用。

因为我用的是unicloud云开发,如果采用微信的云开发,还需要引入wx-server-sdk,然后要配置一堆东西,文档又不全,尝试了两次未果,就放弃了这种方案。
最后是采用的https调用的方式。

二,实现思路

【第一步】需要获取ACCESS_TOKEN值。

这种微信的接口,必须服务端调用,不能前端直接https进行调用。虽然在开发阶段能够调用成功,那是因为微信开发者工具-项目信息-本地设置中勾选了不校验合法域名导致的成功。当你发布体验版和正式版时是调用不通的。

所以,获取ACCESS_TOKEN必须在服务端直接调用微信接口获取。

官方文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html

实现的云对象代码:

// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129
module.exports = {
	_before: function () { // 通用预处理器

	},
	
	async addCodeInfo(infoObj){
		//获取access_token
		const APPID='xxx'
		const APPSECRET='xxx'
		const URL = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}`
		const requestOptions = {
			method: 'GET',
			dataType: 'JSON'
		}
		const res1 = await uniCloud.httpclient.request(URL,requestOptions)
		const access_token=res1.data.access_token
		return access_token
	}
}

【第二步】需要利用ACCESS_TOKEN再调用微信的生成分享码的接口

这个接口依旧是微信的接口,所以依旧是需要在服务端发起。

于是,在上一步获取到access_token的基础上,继续调用获取分享码的接口:

// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129
module.exports = {
	_before: function () { // 通用预处理器

	},
	//数据库中增加wifi信息,增加完毕后返回分享二维码
	async addCodeInfo(infoObj){
		//获取access_token
		const APPID='wxe0bc57edf31dad80'
		const APPSECRET='7e5f676a5fad20d044434792360c28d4'
		const URL = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}`
		const requestOptions = {
			method: 'GET',
			dataType: 'json'
		}
		const res1 = await uniCloud.httpclient.request(URL,requestOptions)
		const access_token=res1.data.access_token

		//由此id生成分享码
		const codeUrl=`https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${access_token}`
		const codeOptions={
			method:'POST',
			data: JSON.stringify({
				"scene":'id',
				"page":'pages/index/index',
				"check_path":false,
				"width":500,
				"env_version":'trial'//trial:体验版
			}),
		}
		const res3 = await uniCloud.httpclient.request(codeUrl,codeOptions)
		return res3
	}
}

【第三步】获取到的分享码结果类型是buffer的二进制格式,需要转图片

如下图:

也就是,res.data是个buffer类型的数据,它有两个字段:data字段存储内容,type字段显示类型。

于是需要在服务端转成base64后再传给前端:

const buffer=res3.data
const result=buffer.toString('base64')

三,完整的代码实现

前端

<img :src="shareCode" alt="" >

<script>
	export default {
		data() {
			return {
				shareCode:'',
			}
		},
		onLoad(options) {
			this.getWeixinCode()
		},
		methods: {
			//调用后端接口,生成小程序分享码
			async getWeixinCode() { // 注意异步
				const _this=this
				const wifiCode = uniCloud.importObject('wifiCode') // 导入云对象
				try {
					const params={}
					const res=await wifiCode.addCodeInfo(params)
					console.log("++++",res)
					this.shareCode="data:image/png;base64," + res
				} catch (e) {
					console.log(e)
				}
			}
		}
	}
</script>

后端:

主要就是wifiCode这个云对象:

// 云对象教程: https://uniapp.dcloud.net.cn/uniCloud/cloud-obj
// jsdoc语法提示教程:https://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/129
module.exports = {
	_before: function () { // 通用预处理器

	},
	//数据库中增加wifi信息,增加完毕后返回分享二维码
	async addCodeInfo(infoObj){
		//获取access_token
		const APPID='xxx'
		const APPSECRET='xxx'
		const URL = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}`
		const requestOptions = {
			method: 'GET',
			dataType: 'json'
		}
		const res1 = await uniCloud.httpclient.request(URL,requestOptions)
		const access_token=res1.data.access_token
		
		//由此id生成分享码
		const codeUrl=`https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${access_token}`
		const codeOptions={
			method:'POST',
			data: JSON.stringify({
				"scene":"23",
				"page":'pages/index/index',
				"check_path":false,
				"width":500,
				"env_version":'trial'//trial:体验版
			}),
		}
		const res3 = await uniCloud.httpclient.request(codeUrl,codeOptions)
		const buffer=res3.data
		console.log("---响应--",buffer)
		// const buf = new Buffer (buffer)
		console.log("buffer转化",buffer.toString('base64'))
		const result=buffer.toString('base64')
		return result
	}
}

四,坑点

1,微信的接口需要服务端调用

2,获取分享码的接口的post接口参数需要JSON.stringify处理一次

3,scenez只支持32位,一些特殊字符还不支持。

4,获取分享码的接口的access_token参数,必须放在url上,也就是和我代码中一样的写法。

5,本地开发完成后,云对象啥的需要上传部署后,体验版和真机调试才能用。并且,需要配置小程序的接口白名单。https://tcb-api.tencentcloudapi.com和
https://tcb-wbk382fznzzwna3-8chuc14d8e99.service.tcloudbase.com

6,获取分享码的接口,返回的是buffer二进制流,所以获取二维码的接口,我没有配置datatype这个参数,而是让它采用默认的值。获取到结果后还需要转化成base64才可以渲染在页面上。

总而言之,比较坑,但是我没哭。

呐,就这样吧~

总结

到此这篇关于如何利用unicloud生成微信小程序分享码的文章就介绍到这了,更多相关unicloud生成微信小程序分享码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何利用unicloud生成微信小程序分享码

本文链接: https://www.lsjlt.com/news/175213.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用unicloud生成微信小程序分享码
    目录一,方案二,实现思路三,完整的代码实现四,坑点总结一,方案 看了官方的文档,获取小程序码有三种,我采用的是第二种:生成数量不受限制的分享码。 对应的官方文档:https://de...
    99+
    2022-12-19
    uniapp 微信小程序分享 unicloud 微信小程序 如何生成小程序分享码
  • 微信小程序码如何生成
    这篇文章主要介绍了微信小程序码如何生成的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇微信小程序码如何生成文章都会有所收获,下面我们一起来看看吧。  小程序码是什么小程序码跟二维码长的不一样,你可以理解成这是另一...
    99+
    2023-06-26
  • 微信小程序分享朋友圈图片如何生成
    本文小编为大家详细介绍“微信小程序分享朋友圈图片如何生成”,内容详细,步骤清晰,细节处理妥当,希望这篇“微信小程序分享朋友圈图片如何生成”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。特性简单易用 &mda...
    99+
    2023-06-26
  • 微信小程序如何生成二维码
    微信小程序生成的是小程序码,而不是二维码,步骤如下:首先,登录小程序公众后台,点击“工具”>“生成小程序码”;输入小程序名称或APPID,用于查找需要生成程序码的小程序;点击获取更多页面路径,输入自己微信号;打开微信,进入小程序列表中,打开...
    99+
    2024-04-02
  • 如何生成无限制的微信小程序码
    小编给大家分享一下如何生成无限制的微信小程序码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!概述现在除了用二维码之外,微信还可以...
    99+
    2024-04-02
  • Java中如何生成微信小程序太阳码
    这篇文章主要介绍“Java中如何生成微信小程序太阳码”,在日常操作中,相信很多人在Java中如何生成微信小程序太阳码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中如何生成微信小程序太阳码”的疑惑有所...
    99+
    2023-06-30
  • php生成微信小程序二维码
    //生成小程序二维码,$mem_id是二维码带的参数,拿过去写上自己的appid和秘钥就能用 public function ceshihtml($mem_id) { ...
    99+
    2023-09-12
    微信小程序 php 小程序
  • 微信小程序彩票号码生成器
    本文为大家分享了微信小程序彩票号码生成器的具体代码,供大家参考,具体内容如下 一、案例说明 设计一个小程序,生成一注7个彩票号码(1-31),并在圆形图标上显示,加上一个按钮,每点一...
    99+
    2024-04-02
  • 微信小程序分享图片给微信好友(如二维码)
    目录 前言 一、使用哪种api? 二、对图片的处理需要转化为临时路径 三、Windows端兼容性问题 前言 最近在公司开发一个微信小程序项目,用到的uniapp技术,在分享图片时,查看了uniapp的技术文档,写...
    99+
    2023-09-02
    微信小程序 微信 小程序 vue Powered by 金山文档
  • 微信小程序实现二维码生成器
    目录一、项目展示二、项目核心代码一、项目展示 项目是一个简单实用的二维码生成器。 使用者可以在生成器中输入文字生成二维码,也可以在识别器中识别二维码的内容 二、项目核心代码 二维码...
    99+
    2023-01-09
    小程序二维码生成器 小程序二维码生成 小程序二维码
  • 生成普通的微信小程序二维码
    登录微信小程序后台传送门 开发管理->开发设置->扫普通链接二维码打开小程序   在这里开通此功能,然后按微信定义的规则配置具体的地址,等正式上线的时候再发布该规则  2.然后按照配置的二维码规则(上图第三项)去直接生成普通的二维码(...
    99+
    2023-09-18
    微信小程序 小程序 微信
  • 小程序页面如何分享到微信群
    小程序页面分享到微信群的步骤:打开需要分享小程序。点击右上角的“···”。会弹出一些功能信息,选择“分享给朋友”。(注意:部分小程序不支持分享功能)选择群分享即可。...
    99+
    2024-04-02
  • 微信小程序如何获取分享链接
    小编给大家分享一下微信小程序如何获取分享链接,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!API层面onShareAppMessage小程序如果想对外分享,必须在 page 里面定义 onSh...
    99+
    2023-06-26
  • 利用uni-app生成微信小程序的踩坑记录
    目录前言1.不允许id选择器2.默认竖排3.图片加载不出来4.eval函数不可用5.getStorage异步6.props的中的值不可修改7.wx.uploadFile携带字符串参数...
    99+
    2024-04-02
  • 微信小程序嵌套的H5使用小程序分享(分享微信好友或朋友圈)
    需求说明 嵌套在微信小程序中的H5想要使用小程序自带分享功能,分享H5的页面给微信好友或朋友圈 实现原理 H5中可使用wx.miniProgram.postMessage向小程序的webview发送消息,会触发组件的message事件,在小...
    99+
    2023-08-21
    小程序 微信小程序 微信
  • 使用微信小程序实现二维码生成功能
    使用微信小程序实现二维码生成功能小程序的盛行使得开发者可以轻松地实现各种功能,而二维码生成功能正是其中之一。二维码作为快速传递信息的一种方式,被广泛应用于各种场景,如支付、活动推广等。在本篇文章中,我们将学习如何使用微信小程序实现二维码生成...
    99+
    2023-11-21
    微信小程序 二维码生成 实现功能
  • 微信小程序开发经验分享
    小编给大家分享一下微信小程序开发经验分享,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一: 参数传值的方法1: data-id我...
    99+
    2024-04-02
  • 微信小程序中如何实现二维码分享和扫码功能
    在微信小程序中实现二维码分享和扫码功能,可以通过以下步骤来实现: 生成二维码分享:可以使用第三方的二维码生成库来生成二维码图片,...
    99+
    2024-04-03
    微信小程序
  • 微信小程序生成带动态参数二维码
    首先说一下我的使用场景,用户可根据id生成这一条记录的二维码,其他人扫码直接跳转到小程序,显示这条记录的具体信息。 分两步:第一在微信公众号后台配置,第二利用canvas前端实现二维码展示,并接收参数做下一步处理。 第一步:后台配置 登录微...
    99+
    2023-08-17
    微信小程序 小程序
  • 怎么使用微信小程序canvas2d生成图形验证码
    本篇内容主要讲解“怎么使用微信小程序canvas2d生成图形验证码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用微信小程序canvas2d生成图形验证码”吧!成品展示:背景:大致看了一下...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作