·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

求购[1314]分享到微信分享带图片

178 2
发表于 2022-6-21 04:40:34 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
如题主要是看中他通过微信分享之后别人阅读文章有积分。

插件需要公众号分享接口权限,插件中设置AppID和AppSecret
帖内增加一个分享帖子到微信的功能,点击二维码或下边的“使用教程”会弹出分享到微信的操作方法,引导会员将帖子分享到微信朋友圈。
会员通过微信分享帖子后,会进行加统计和奖励机制,微信首次打开帖子时有引导分享的温馨提示
支持分享带图标,分享标题为帖子标题,描述为帖子内容截取

临时测试地址:http://www.discuz.1314study.com/t/129450.html

主要设置:
二维码展示位置
使用的板块
二维码接口选择
开启奖励模式
被多少人浏览后给予奖励
奖励的积分类型
奖励的积分数量
每日 *** 多奖励次数
只统计会员
奖励后停止统计
帮助页面说明文字
短网址中转

相关说明:

  • AppID 和 AppSecret 在微信公众号->基本配置中获取
  • JS接口安全域名 在微信公众号->公众号设置->功能设置(域名需备案)
  • 你的模板或者其他插件带了微信分享功能,需要关闭,由我们插件接管微信分享功能


我要说一句 收起回复

评论2

shangjinLv.2 发表于 2023-5-20 23:24:12 | 查看全部 | Google Chrome | Windows 10
感谢分享,正需要
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-17 06:05:09 | 查看全部
要实现你描述的功能,可以通过开发一个自定义的Discuz插件来实现。以下是一个基本的开发思路和步骤:

### 1. 插件基本结构
首先,创建一个插件的基本结构,包括插件的目录、配置文件、语言包等。

  1. /source/plugin/wechat_share/
  2. ├── plugin_wechat_share.xml
  3. ├── wechat_share.class.php
  4. ├── template/
  5. │   ├── wechat_share.htm
  6. ├── language/
  7. │   ├── lang_wechat_share.php
复制代码


### 2. 插件配置文件
在 `plugin_wechat_share.xml` 中定义插件的基本信息、设置项等。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <root>
  3.     <item id="name"><![CDATA[微信分享插件]]></item>
  4.     <item id="version"><![CDATA[1.0]]></item>
  5.     <item id="description"><![CDATA[实现帖子分享到微信并带图片的功能]]></item>
  6.     <item id="author"><![CDATA[开发者名称]]></item>
  7.     <item id="url"><![CDATA[https://www.dz-x.net/]]></item>
  8.     <item id="settings">
  9.         <item id="appid"><![CDATA[AppID]]></item>
  10.         <item id="appsecret"><![CDATA[AppSecret]]></item>
  11.         <item id="reward_enabled"><![CDATA[是否开启奖励]]></item>
  12.         <item id="reward_points"><![CDATA[奖励积分数量]]></item>
  13.         <item id="reward_max"><![CDATA[每日最多奖励次数]]></item>
  14.     </item>
  15. </root>
复制代码


### 3. 插件主逻辑
在 `wechat_share.class.php` 中编写插件的主要逻辑,包括微信分享接口的调用、奖励机制的实现等。

  1. <?php

  2. if (!defined('IN_DISCUZ')) {
  3.     exit('Access Denied');
  4. }

  5. class plugin_wechat_share {

  6.     public function viewthread_postbottom_output() {
  7.         global $_G;

  8.         // 获取插件配置
  9.         $appid = $_G['setting']['wechat_share_appid'];
  10.         $appsecret = $_G['setting']['wechat_share_appsecret'];

  11.         // 生成微信分享的二维码
  12.         $qrcode_url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" . $this->getAccessToken($appid, $appsecret);
  13.         $post_data = array(
  14.             'action_name' => 'QR_LIMIT_SCENE',
  15.             'action_info' => array(
  16.                 'scene' => array(
  17.                     'scene_id' => $_G['tid']
  18.                 )
  19.             )
  20.         );
  21.         $qrcode_result = $this->httpRequest($qrcode_url, json_encode($post_data));
  22.         $ticket = json_decode($qrcode_result, true)['ticket'];
  23.         $qrcode_image_url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . urlencode($ticket);

  24.         // 输出分享按钮和二维码
  25.         $template = template('wechat_share:wechat_share');
  26.         $template->assign('qrcode_image_url', $qrcode_image_url);
  27.         return $template->fetch('wechat_share/wechat_share');
  28.     }

  29.     private function getAccessToken($appid, $appsecret) {
  30.         $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $appsecret;
  31.         $result = $this->httpRequest($url);
  32.         return json_decode($result, true)['access_token'];
  33.     }

  34.     private function httpRequest($url, $data = null) {
  35.         $curl = curl_init();
  36.         curl_setopt($curl, CURLOPT_URL, $url);
  37.         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  38.         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
  39.         if (!empty($data)) {
  40.             curl_setopt($curl, CURLOPT_POST, 1);
  41.             curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
  42.         }
  43.         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  44.         $output = curl_exec($curl);
  45.         curl_close($curl);
  46.         return $output;
  47.     }
  48. }
复制代码


### 4. 模板文件
在 `template/wechat_share.htm` 中定义分享按钮和二维码的展示方式。

  1. <div class="wechat_share">
  2.     <p>分享到微信:</p>
  3.     <img src="{$qrcode_image_url}" alt="微信分享二维码">
  4.     <p>使用教程:点击二维码,长按识别后分享到朋友圈。</p>
  5. </div>
复制代码


### 5. 奖励机制
在插件中实现奖励机制,可以通过在用户分享后记录分享次数,并在用户访问帖子时给予积分奖励。

  1. public function viewthread_postbottom_output() {
  2.     global $_G;

  3.     // 检查是否已经分享过
  4.     if (!isset($_G['cookie']['wechat_shared_' . $_G['tid']])) {
  5.         // 给予积分奖励
  6.         $reward_points = $_G['setting']['wechat_share_reward_points'];
  7.         updatecreditbyaction('wechat_share', $_G['uid'], array(), '', $reward_points);

  8.         // 设置cookie,防止重复奖励
  9.         dsetcookie('wechat_shared_' . $_G['tid'], 1, 86400);
  10.     }

  11.     // 其他逻辑...
  12. }
复制代码


### 6. 插件安装与配置
在Discuz后台安装插件后,进入插件设置页面,填写微信公众号的 `AppID` 和 `AppSecret`,并配置奖励机制的相关参数。

### 7. 测试与调试
在测试环境中测试插件的功能,确保分享、二维码生成、奖励机制等功能正常工作。

### 8. 发布与维护
将插件打包发布到DZ插件网(https://www.dz-x.net/),并根据用户反馈进行维护和更新。

### 注意事项
- 确保微信公众号的 `JS接口安全域名` 已经正确配置。
- 如果网站使用了其他微信分享插件,需要关闭或卸载这些插件,以避免冲突。
- 插件的开发和测试过程中,建议在本地或测试环境中进行,避免影响线上网站的正常运行。

通过以上步骤,你可以实现一个功能完善的微信分享插件,满足用户分享帖子到微信并获取积分奖励的需求。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.222.215.20,GMT+8, 2025-4-4 12:56 , Processed in 0.249421 second(s), 83 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表