访问 https://work.weixin.qq.com/ 完成企业注册(无需营业执照,用个人身份证注册个体户/企业验证版可满足基础裂变)
访问 https://mp.weixin.qq.com/ 注册个人/企业小程序,个人小程序可使用基础免费裂变功能
使用免费本地数据库SQLite+Python轻量后端,全程无需购买服务器
python3 --version(Windows输入python --version)验证pip install flaskpip install flask-corspip install qywx-sdkpip install sqlite3
创建一个空文件夹「private_domain_fission」,在里面新建server.py文件,粘贴以下代码并替换前置准备中记录的参数:
```python from flask import Flask, request, jsonify from flask_cors import CORS import sqlite3 import qywx_sdk app = Flask(__name__) CORS(app) 替换以下参数 CORP_ID = "你的企业ID" AGENT_ID = 你的AgentId(纯数字) SECRET = "你的应用Secret" MINI_APPID = "你的小程序AppID" 初始化SQLite数据库 def init_db(): conn = sqlite3.connect('fission.db') cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, wx_user_id TEXT UNIQUE NOT NULL, wx_nickname TEXT NOT NULL, parent_id INTEGER DEFAULT 0, invite_count INTEGER DEFAULT 0, is_rewarded INTEGER DEFAULT 0 ) ''') conn.commit() conn.close() init_db() 企业微信SDK初始化 wx_client = qywx_sdk.Client(corpid=CORP_ID, corpsecret=SECRET) 获取用户信息接口(小程序调用) @app.route('/api/get_user_info', methods=['POST']) def get_user_info(): data = request.get_json() code = data.get('code') parent_id = data.get('parent_id', 0) try: 小程序code换用户信息 res = wx_client.miniprogram.code2session(MINI_APPID, code) wx_user_id = res['openid'] wx_nickname = res.get('nickname', '匿名用户') 注册用户 conn = sqlite3.connect('fission.db') cursor = conn.cursor() cursor.execute('SELECT id FROM users WHERE wx_user_id = ?', (wx_user_id,)) user = cursor.fetchone() if not user: cursor.execute('INSERT INTO users (wx_user_id, wx_nickname, parent_id) VALUES (?, ?, ?)', (wx_user_id, wx_nickname, parent_id)) user_id = cursor.lastrowid 给上级加邀请数 if parent_id != 0: cursor.execute('UPDATE users SET invite_count = invite_count + 1 WHERE id = ?', (parent_id,)) conn.commit() else: user_id = user[0] 获取当前用户信息 cursor.execute('SELECT id, wx_nickname, invite_count, is_rewarded FROM users WHERE id = ?', (user_id,)) current_user = cursor.fetchone() conn.close() return jsonify({'code': 0, 'data': { 'user_id': current_user[0], 'nickname': current_user[1], 'invite_count': current_user[2], 'is_rewarded': current_user[3] }}) except Exception as e: return jsonify({'code': 1, 'msg': str(e)}) 领取奖励接口(可替换为自己的逻辑,比如发优惠券) @app.route('/api/get_reward', methods=['POST']) def get_reward(): data = request.get_json() user_id = data.get('user_id') required_count = 3 设置需要邀请的人数 try: conn = sqlite3.connect('fission.db') cursor = conn.cursor() cursor.execute('SELECT invite_count, is_rewarded FROM users WHERE id = ?', (user_id,)) user = cursor.fetchone() if not user: return jsonify({'code': 1, 'msg': '用户不存在'}) if user[0] < required_count: return jsonify({'code': 1, 'msg': f'还需邀请{required_count - user[0]}人'}) if user[1] == 1: return jsonify({'code': 1, 'msg': '已领取过奖励'}) 更新奖励状态 cursor.execute('UPDATE users SET is_rewarded = 1 WHERE id = ?', (user_id,)) conn.commit() conn.close() return jsonify({'code': 0, 'msg': '奖励领取成功!'}) except Exception as e: return jsonify({'code': 1, 'msg': str(e)}) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True) ```打开微信开发者工具,找到左侧「pages/index」,替换index.js、index.wxml、index.wxss的内容:
python server.py(Windows)或python3 server.py(Mac/Linux)启动后端在index.wxml的btn-group上方添加一个企业微信联系人二维码组件,引导用户添加企微后发送暗号获得额外抽奖机会:
```html易频IT社区是综合性互联网IT技术门户网站,专注分享网络技术、服务器运维、网络安全、编程开发、系统架构、云计算、大数据等行业干货,实时更新IT行业资讯、零基础教程、实战案例,为IT从业者、技术爱好者提供专业的学习交流平台。
Copyright © 2021-2026 易频IT社区. All Rights Reserved. 备案号:闽ICP备2023013482号 网站地图