如何利用微信小程序生成小程序码实现分销功能

微信小程序码生成,扫码携带参数进入指定页面 阅读详情
AI摘要

本文主要介绍利用微信小程序生成小程序码实现分销功能的核心内容。生成的小程序码带有用户标识参数,前端在扫码页面的onLoad方法获取场景值,注册时传给后端,后端将新老用户做关系绑定,再按业务逻辑处理。

    小程序申请配置之类的就不多做赘述了,今天主要介绍一下实现分销的核心内容。

     该功能的核心地方就在于,使用微信小程序生成小程序码。而该小程序码中就是带有用户标识参数的,接下来一起来揭开生成带参小程序码的面纱吧。

      具体代码如下:

public function getWxAcCode()
    {
        $wx = new WxAction();
        $token = $wx->getAccessToken();//获取accesstoken

        //整理post请求参数
        $post_data = [
            'scene' => '用户id',//场景值 可以理解成用户标识 但是存在限制(文档中有说明)
            'page' => '页面路径 path',//小程序的页面路径 特别注意该路径要与小程序内定义的路径一致测试时不要添加否则会生成不了 最最重要的是路径之前不要有斜杠/ 直接以pages开头否则会提示41030
            'is_hyaline' => true //生成的小程序码图片背景是否为透明的
        ];
        $data = json_encode($post_data, true);

        //请求地址
        $url = 'https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token='.$token;
        
        $accode = $wx->sendPost($url,$data);//获取小程序二维码 返回的就是图片流信息
        $img = $this->cutPictureCircular('微信头像地址');//获取圆形头像流信息
        $qrcode = $this->mergeImages($accode,$img);//加上头像的小程序码图片流信息
        $qrcode = imagecreatefromstring($qrcode);

        // 读取背景图的信息
        $tmp = file_get_contents('./bg.png');
        $bg = imagecreatefromstring($tmp);

        // 将小程序码合并到海报图上
        imagecopyresampled($bg, $qrcode, 225, 630, 0, 0, 285, 285, imagesx($qrcode), imagesy($qrcode));

        header("Content-Type: image/png; charset=utf-8"); // 设置header头
        imagealphablending($bg, false); // (很重要)不合并颜色,直接用 PNG 图像颜色替换,包括透明色;
        imagesavealpha($bg, true);  // (很重要)设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息;
        imagepng($bg); // 保存图片为png
        imagedestroy($qrcode); // 清除画布资源
        imagedestroy($bg); // 清除画布资源
        die;
    }

/**
     * 将图片裁剪成圆形
     */
    private function cutPictureCircular($img)
    {
        // 获取图片流信息
        $info = file_get_contents($img);
        $src_img = imagecreatefromstring($info);
        $w = imagesx($src_img);
        $h = imagesy($src_img);
        $w = min($w, $h);
        $h = $w;
        $img = imagecreatetruecolor($w, $h);
        imagealphablending($img, false); // 设定图像的混色模式
        imagesavealpha($img, true); // 这一句一定要有(设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息)
        $bg = imagecolorallocatealpha($img, 255, 255, 255, 127); // 拾取一个完全透明的颜色,最后一个参数127为全透明
        imagefill($img, 0, 0, $bg);
        $r = $w / 2; //圆半径
        $y_x = $r; //圆心X坐标
        $y_y = $r; //圆心Y坐标
        for ($x = 0; $x < $w; $x++) {
            for ($y = 0; $y < $h; $y++) {
                $rgbColor = imagecolorat($src_img, $x, $y);
                if (((($x - $r) * ($x - $r) + ($y - $r) * ($y - $r)) < ($r * $r))) {
                    imagesetpixel($img, $x, $y, $rgbColor);
                }
            }
        }
        /**
         * 如果想要直接输出图片,应该先设header。header("Content-Type: image/png; charset=utf-8");
         * 并且去掉缓存区函数
         */
        //获取输出缓存,否则imagepng会把图片输出到浏览器
        ob_start();
        imagealphablending($img, false); // (很重要)不合并颜色,直接用 PNG 图像颜色替换,包括透明色;
        imagesavealpha($img, true);  // (很重要)设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息;
        imagepng($img);
        imagedestroy($img);
        $contents = ob_get_contents();
        ob_end_clean();
        return $contents;
    }

    /**
     * 合成图片
     */
    private function mergeImages($code,$img)
    {
        $code = imagecreatefromstring($code);
        $img = imagecreatefromstring($img);

        $QR_width = imagesx($code); // 二维码图片宽度
        $QR_height = imagesy($code); // 二维码图片高度
        $logo_width = imagesx($img); // logo图片宽度
        $logo_height = imagesy($img); // logo图片高度
        $logo_qr_width = $QR_width / 2.2; // 组合之后logo的宽度(占二维码的1/2.2)
        $scale = $logo_width / $logo_qr_width; // logo的宽度缩放比(本身宽度/组合后的宽度)
        $logo_qr_height = $logo_height / $scale; // 组合之后logo的高度
        $from_width = ($QR_width - $logo_qr_width) / 2; // 组合之后logo左上角所在坐标点
        /**
         * 重新组合图片并调整大小
         * imagecopyresampled() 将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中
         */
        imagecopyresampled($code, $img, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);
        /**
         * 如果想要直接输出图片,应该先设header。header("Content-Type: image/png; charset=utf-8");
         * 并且去掉缓存区函数
         */
        //获取输出缓存,否则imagepng会把图片输出到浏览器
        ob_start();
        imagealphablending($code, false); // (很重要)不合并颜色,直接用 PNG 图像颜色替换,包括透明色;
        imagesavealpha($code, true);  // (很重要)设置标记以在保存 PNG 图像时保存完整的 alpha 通道信息;
        imagepng($code);
        imagedestroy($code);
        imagedestroy($img);
        $contents = ob_get_contents();
        ob_end_clean();
        return $contents;
    }

     获取accesstoken方法代码如下:

class wxAction extends Controller
{
    /**
     * 获取access_token
     */
    public function getAccessToken()
    {
        // 获取redis存储key
        $cash_key = config('redisKey')['access_token'];

        // 获取redis连接
        $redis = RedisConnect::getRedis();
        // 获取token
        $token = $redis->get($cash_key);
        // 判断是否存在 不存在或过期 获取最新的token
        if (empty($token)) {
            // 读取配置中的appid和secret
            $appid = config('appid');
            $secret = config('secret');

            $obj = file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $secret);
            $arr = json_decode($obj,true);
            $token = $arr['access_token'];
            
            // 存入redis并设置过期时间
            $redis->set($cash_key,$token,7000);
        }
        return $token;
    }
}

    上述代码实现了生成带有头像的小程序码的海报图,结果如下:

    微信小程序生成小程序码相关文档。

    前端只需要在扫码进入的那个页面的onLoad方法中,获取小程序码中的场景值,在用户注册时传给后端就可以了。而后端需要做的就是将新用户与分享用户之间做一个关系绑定的处理剩下的就是根据实际的业务逻辑来做处理的事情了。小程序中获取小程序码的参数代码如下:

onLoad: function (options) {
  console.log(options.scene);
}

微信小程序码分享,微信小程序转发 项目背景: 1. 小程序要做分销功能,即这个小程序是谁分享给你的,你使用TA分享过来的小程序买了东西后,双方都有优惠 2. 小程序要实现分销功能,就要获取分享者的openid和使用者的openid;使用者的openid很容易获取,但是分享者的openid怎么通过小程序码和转发带过来呢?这是本文主要解决的问题。 最终实现的前端界面如下图所示,要实现 小程序码带参 和 “分享好友购票带参”... 阅读详情

相关推荐

Spring Boot后端生成微信永久小程序码实战:getUnlimited接口封装与scene场景设计

二维码技术从普通链接跳转演变为小程序码的场景化承载后,开发者可以通过自定义参数实现一码一场景的精细化运营。微信提供的getUnlimited接口支持生成永久小程序码,并允许在scene字段中嵌入渠道、商品、用户等业务标识,是推广追踪和分销裂变的基础能力。然而在实际工程中,直接调用该接口需要处理access_token缓存、二进制图片流解析、参数校验与落盘存储等一系列问题。通过Java后端服务统一封装生成逻辑,结合Spring Boot的RestTemplate与配置化管理,可以将接口能力沉淀为可复用的业务组

weixin_29722783的博客 301

uniapp微信小程序 生成小程序码scene参数踩坑全指南@杨章隐

这里采用的是获取不限制的小程序码注意事项如果调用成功,会直接返回图片二进制内容,如果请求失败,会返回 JSON 格式的数据。POST 参数需要转成 JSON 字符串,不支持 form 表单提交。调用分钟频率受限(5000次/分钟),如需大量小程序码,建议预生成获取 scene 值scene 字段的值会作为 query 参数传递给小程序/小游戏。用户扫描该码进入小程序/小游戏后,开发者可以获取到二维码中的 scene 值,再做处理逻辑。

杨章隐的博客 5978

微信小程序海报生成实战:Canvas 2D绘制与小程序码合成全解析

在私域流量运营和用户增长场景中,分享海报已成为微信小程序裂变传播的关键载体。通过图像合成技术将背景图、用户信息与专属二维码整合为一张可识别的图片,能够有效突破小程序无法直接分享到朋友圈的限制。Canvas 2D作为小程序原生绘图接口,提供了高性能的像素级绘制能力,结合二维码生成、网络图片加载与画布导出,即可实现从数据到海报的完整链路。本文从Canvas基础原理出发,讲解小程序码的获取方式、海报元素的坐标计算与图层绘制技巧,并剖析真机适配、模糊导出、权限授权等工程实践问题,帮助开发者快速搭建稳定可靠的分享海报

weixin_33519829的博客 116

asp微信会员积分上下级团队注册,带参数推荐人的二维码,分销等级会员生成二维码海报系统

昨天一个好友来电话让帮忙做一个程序,他的老板让他做一个能扫码注册的会员系统,注册会员必须要推荐人的二维码扫才可以注册,这就是需要带参数的二维码了,还要生成宣传海报,还要生成会员自已的二维码,还要带积分,还要看团队人数,还要看有多少下线,要求好多,我花了一个晚上才写好,有需要的朋友直接下载去用吧! 下载地址:http://ly.ftphn.com/wxhy.rar 功能: 微信会员注册,带获取微信用户信息入库,会员注册必须扫推荐人的二维码才可以注册成会员,注册时需要输入手机和姓名。 带会员级别,默认注册进来的

tocnc的博客 629

微信小程序商城,实现了支付、二级分销等功能,已经上线。

微信小程序商城,帮一个朋友做的项目,实现了支付、二级分销等功能,已经上线,压缩包里有小程序码,可扫码预览。

微信小程序完整源码,购物车,个人中心,分销,多店,商品分类等功能完整。

微信小程序完整源码,购物车,个人中心,分销,多店,商品分类等功能完整。

小程序分销系统功能设计_小程序分销系统的好处_OctShop

想抓住各大公司最后网申的机会吗?研发岗 hr没详细说加班,只说看项目情况偶尔加班, 网上一搜全是劝退的,比如加班到晚上10点,官僚主义,驻点工作辛苦等,想问问西安这边加班严重吗?校招收到了经纬恒润的offer,目前只有这一个offer ,所以是有点倾向于去的,但是看网上说这家公司风评实在不太好,加班,裁应届,现在特别纠结要不要签,有没有。二面通过一周多了,hr 说人力资源审核流程中,让等着提交资料的短信,我看网上其他人都是面试完一两天就让提交资料,怎么我就这么慢了,催了几次 hr 也没动静。

2301_79125642的博客 1202

微信小程序demo:商城分销系统(源代码+截图)

微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码+截图)微信小程序demo:商城分销系统(源代码

微信小程序识别小程序码并传参

后端添加的参数我们可以在onLoad中接收scene,记得使用decodeURIComponent解析。连续看到几个类似关于小程序生成二维码场景的问题,分销的场景和单商品购买的页面居多。前端通过接口获取到小程序码。

月落星河 1385

Zynq UltraScale+网络加速方案:用AXI Ethernet Subsystem实现2.5G吞吐量的配置秘籍

本文详细介绍了在Xilinx Zynq UltraScale+平台上使用AXI Ethernet Subsystem实现2.5Gbps网络吞吐量的配置方法。通过硬件设计优化、Vivado工程配置、Linux驱动调优及性能测试等关键步骤,为工业视觉和5G前传等高速网络应用提供可靠解决方案。

weixin_30485379的博客 614

使用AI编写测试用例——详细教程

现阶段AI还不能完全替代人工测试用例编写,但如果把AI当做一个提高效率的工具,它将会是一个很强大的辅助。

公众号|软件测试老吴 3万+

Java 实现微信小程序不同人员生成不同小程序码并追踪扫码来源

ava后台实现微信小程序不同人员生成不同小程序码并追踪扫码来源,实现推广下面我将详细介绍如何使用Java后台实现这一功能。

weixin_40872102的博客 71

Topas——基于Geant4的放射治疗蒙特卡罗算法模拟工具

本文内容参考Joseph Perl 的线上会议,视频详情可见于,该视频会议内容主要介绍Topas功能、软件架构、工作流程、参数设定、物理模型、具体案例等,对TOPAS的基本入门使用方法以及使用规定作出阐述。

fy方的博客 7605

php 微信全员分销_小程序商城分销系统带来的新营销优势

微信小程序商城能够满足定制开发商城的界面,也符合企业和商家的个性化的需求,同时店铺也能够获得一个全新的高速发展,目前小程序商城里面也支持各种不同的营销活动。而拥有分销功能的微信小程序商城一直以来都备受商家亲睐,小程序分销商城的基本模式是所有微信用户就能申请成为商家小程序的分销员,推荐给别人成功达成交易后便能获得奖励。商家之所以选择开发拥有分销功能的小程序商城,是因为这一销售方式能够实现产品直接从生...

weixin_28858247的博客 331

基于Python实现的捕鱼达人小游戏源代码+使用说明

摘要: 本文介绍了一款自制的捕鱼达人小游戏,使用Python3和Pygame模块开发。游戏包含完整的资源文件(图片、音效、字体)和源码结构(11个功能模块),实现了大炮移动射击、特殊子弹、炸弹、难度递增等核心玩法。安装需配置Python环境和Pygame模块,运行main.py即可启动游戏。游戏支持键盘控制(方向键移动、空格射击、1键放炸弹),默认时长600秒,包含开始菜单、游戏界面和结束界面。所有代码均有详细注释,项目已开源并提供下载链接。(150字)

2301_76484015的博客 667

国产FPGA高云GW1NSR-4C,集成ARM Cortex-M3硬核

从板子整体角度来看,这是一款国产化程度很高的板子,从主控FPGA,到JTAG芯片,存储芯片、电源芯片等,都是使用的国产半导体公司的产品。板子整体尺寸也比较迷你,属于小而美类型的,可以认为是一款FPGA核心板,当然也预留了排针接口,给用户足够的扩展空间。对于想了解高云小蜜蜂SoC软硬件开发,以及对云源软件、MCU开发环境做个深度评测来说足够了。JTAG调试器固件可以增加虚拟串口功能,对于板子本来来说面积不会有改动,只需要添加两根信号线即可。

whik1194的博客 6397

php 微信全员分销_微信小程序直播分销商城

直播是一种生活方式!2020年2月28日,微信官方正式宣布小程序直播能力启动公测,帮助商家在小程序中实现商业闭环。3月10日,微信官方发布了“女神节”微信小程序直播战报,多角度、全方位展现了小程序直播在对于商家的作用与影响。  数据显示,2000个主播累计直播时长近900小时,每个用户平均点赞数达到了280次,分享次数最高的直播间达到2万次。  通过小程序直播,部分品牌的订单量增长近12...

weixin_29628635的博客 248

腾讯滑块验证码防水墙 tdc.js 补环境实录

腾讯滑块验证码破解研究摘要 本文记录了破解腾讯防水墙滑块验证码(tdc.js)的全过程。研究重点包括: 流程分析:通过抓包分析验证码完整链路,识别出关键参数collect和eks需从tdc.js虚拟机获取 环境模拟:采用渐进式补环境方法,针对字节码虚拟机特性构建完整的window对象,包括navigator、screen、canvas等API的精确模拟 核心破解:成功调用TDC.getData()和TDC.getInfo()获取关键参数,解决POW计算和滑块缺口识别问题 优化调整:针对errorCode 5

码王吴彦祖的博客 228

php 微信全员分销_微信小程序直播系统,微信小程序直播分销商城好处是什么?...

导读:笔者代码哥(daimage2)微信小程序直播系统,微信小程序直播分销商城怎么样?2020年初因为疫情的影响很多商家们都大大小小的受到了一点影响,近几年从2018年开始就是短视频直播的风口,现在最主流的就是直播带货,然而在2020年初大家们都在家里闭关的时候就正好是直播行业最火的时候,很多人都为了在这个时间在网上赚点钱,来避免线下的亏损。3月10日,微信官方发布了“女神节”微信小程序直播战报,...

weixin_33208553的博客 191

从开票数据到 ML81N 一键过账:用 ABAP BAPI 批量创建 Service Entry Sheet 的落地方案

摘要:SAP ESM场景中,服务履约确认通常通过ML81N事务码创建服务条目表(SES)完成。本文介绍如何基于开票数据(VBRK/VBRP)自动生成SES:首先通过BAPI_PO_GETDETAIL获取采购订单服务行结构,然后使用BAPI_ENTRYSHEET_CREATE创建SES并覆盖开票数量与金额,最后调用BAPI_ENTRYSHEET_RELEASE自动释放。解决方案包含ALV交互界面、批量处理逻辑和结果跳转功能,实现从人工录入到自动化处理的转变。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 327

多物理场光学仿真软件:Ansys Lumerical_(8).CHARGE解决方案详解

CHARGE 模块主要用于求解 Poisson 方程和连续性方程,以模拟半导体器件中的电荷分布和载流子输运。通过 CHARGE 模块,可以分析器件的能带结构、载流子浓度、电流密度等关键参数。这些参数对于理解器件的工作原理和优化设计至关重要。

kkchenjj的博客 1387

php 微信全员分销_直播分销小程序如何运营(建议收藏)

当前,越来越多的企业都面临着流量少、流量贵的困境。基于微信自带的庞大流量,微信小程序的出现让很多企业看到了全新的机会,纷纷步入小程序赛道抢占流量红利,借助微信小程序实现良好的口碑宣传和营销价值,快速获客。分销是企业营销的重要方式之一,很多商家利用小程序分销进行低成本拉新获客,实现了销量暴增。今天我们主要分享的就是社交裂变中的【分销功能】,教你如何在小程序上开展分销裂变,通过精细化运营帮助商家实现销...

weixin_39718460的博客 214

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

如何玩赚微信小程序分销商城

做过微商的朋友,一定熟知分销这种玩法儿。分销,尤其是微信分销,充分借助微信好友关系链及传播效应,通过人传人能把生意快速裂变抵达到客户手中。这也是易小程逢电商客户,必谈分销概念的原因所在。分销的概念,想必很多读者基本已经玩过,易小程不在这里累述。这里,重点介绍小程序分销和常规的微信分销有何区别,微信小程序如何更好的玩转分销。首先说两者的区别:一、微信传统公众号分销可以分享到朋友圈,小程序分销不可以直...

广东妃子笑科技 1579

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

php 微信全员分销_小程序直播与分销功能结合,让订单飞起来

小程序直播和分销功能配合有什么优势:1、门槛低,激发全员分销的潜力通过分销商城小程序后台对分销功能的设置,我们可以看出成为推广员的门槛很低,而推广员获得的奖励也会因其推广的比例和深度有所不同。分销功能可以大化地将客户或用户转化成推广员甚至是分销商,基于路径短效果稳的人际传播,传播的效果也更加有效,久之很有可能形成全员分销的势头。2、成本低,投入可控可见相对于其它的营销方式,开通分销商城小程序的分销...

weixin_42361635的博客 193

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

上一篇: 浮点类型字段求和--mysql
下一篇: js截取某个字符的指定字符后面的值
一只小béi
博客等级 码龄9年 15粉丝 40原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值