求购[1314]分享到微信分享带图片
如题主要是看中他通过微信分享之后别人阅读文章有积分。插件需要公众号分享接口权限,插件中设置AppID和AppSecret
帖内增加一个分享帖子到微信的功能,点击二维码或下边的“使用教程”会弹出分享到微信的操作方法,引导会员将帖子分享到微信朋友圈。
会员通过微信分享帖子后,会进行加统计和奖励机制,微信首次打开帖子时有引导分享的温馨提示
支持分享带图标,分享标题为帖子标题,描述为帖子内容截取
临时测试地址:http://www.discuz.1314study.com/t/129450.html
主要设置:
二维码展示位置
使用的板块
二维码接口选择
开启奖励模式
被多少人浏览后给予奖励
奖励的积分类型
奖励的积分数量
每日 *** 多奖励次数
只统计会员
奖励后停止统计
帮助页面说明文字
短网址中转
相关说明:
[*]AppID 和 AppSecret 在微信公众号->基本配置中获取
[*]JS接口安全域名 在微信公众号->公众号设置->功能设置(域名需备案)
[*]你的模板或者其他插件带了微信分享功能,需要关闭,由我们插件接管微信分享功能
感谢分享,正需要 要实现你描述的功能,可以通过开发一个自定义的Discuz插件来实现。以下是一个基本的开发思路和步骤:
### 1. 插件基本结构
首先,创建一个插件的基本结构,包括插件的目录、配置文件、语言包等。
/source/plugin/wechat_share/
├── plugin_wechat_share.xml
├── wechat_share.class.php
├── template/
│ ├── wechat_share.htm
├── language/
│ ├── lang_wechat_share.php
### 2. 插件配置文件
在 `plugin_wechat_share.xml` 中定义插件的基本信息、设置项等。
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item id="name"><!]></item>
<item id="version"><!]></item>
<item id="description"><!]></item>
<item id="author"><!]></item>
<item id="url"><!]></item>
<item id="settings">
<item id="appid"><!]></item>
<item id="appsecret"><!]></item>
<item id="reward_enabled"><!]></item>
<item id="reward_points"><!]></item>
<item id="reward_max"><!]></item>
</item>
</root>
### 3. 插件主逻辑
在 `wechat_share.class.php` 中编写插件的主要逻辑,包括微信分享接口的调用、奖励机制的实现等。
<?php
if (!defined('IN_DISCUZ')) {
exit('Access Denied');
}
class plugin_wechat_share {
public function viewthread_postbottom_output() {
global $_G;
// 获取插件配置
$appid = $_G['setting']['wechat_share_appid'];
$appsecret = $_G['setting']['wechat_share_appsecret'];
// 生成微信分享的二维码
$qrcode_url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" . $this->getAccessToken($appid, $appsecret);
$post_data = array(
'action_name' => 'QR_LIMIT_SCENE',
'action_info' => array(
'scene' => array(
'scene_id' => $_G['tid']
)
)
);
$qrcode_result = $this->httpRequest($qrcode_url, json_encode($post_data));
$ticket = json_decode($qrcode_result, true)['ticket'];
$qrcode_image_url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" . urlencode($ticket);
// 输出分享按钮和二维码
$template = template('wechat_share:wechat_share');
$template->assign('qrcode_image_url', $qrcode_image_url);
return $template->fetch('wechat_share/wechat_share');
}
private function getAccessToken($appid, $appsecret) {
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . $appid . "&secret=" . $appsecret;
$result = $this->httpRequest($url);
return json_decode($result, true)['access_token'];
}
private function httpRequest($url, $data = null) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)) {
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
}
### 4. 模板文件
在 `template/wechat_share.htm` 中定义分享按钮和二维码的展示方式。
<div class="wechat_share">
<p>分享到微信:</p>
<img src="{$qrcode_image_url}" alt="微信分享二维码">
<p>使用教程:点击二维码,长按识别后分享到朋友圈。</p>
</div>
### 5. 奖励机制
在插件中实现奖励机制,可以通过在用户分享后记录分享次数,并在用户访问帖子时给予积分奖励。
public function viewthread_postbottom_output() {
global $_G;
// 检查是否已经分享过
if (!isset($_G['cookie']['wechat_shared_' . $_G['tid']])) {
// 给予积分奖励
$reward_points = $_G['setting']['wechat_share_reward_points'];
updatecreditbyaction('wechat_share', $_G['uid'], array(), '', $reward_points);
// 设置cookie,防止重复奖励
dsetcookie('wechat_shared_' . $_G['tid'], 1, 86400);
}
// 其他逻辑...
}
### 6. 插件安装与配置
在Discuz后台安装插件后,进入插件设置页面,填写微信公众号的 `AppID` 和 `AppSecret`,并配置奖励机制的相关参数。
### 7. 测试与调试
在测试环境中测试插件的功能,确保分享、二维码生成、奖励机制等功能正常工作。
### 8. 发布与维护
将插件打包发布到DZ插件网(https://www.dz-x.net/),并根据用户反馈进行维护和更新。
### 注意事项
- 确保微信公众号的 `JS接口安全域名` 已经正确配置。
- 如果网站使用了其他微信分享插件,需要关闭或卸载这些插件,以避免冲突。
- 插件的开发和测试过程中,建议在本地或测试环境中进行,避免影响线上网站的正常运行。
通过以上步骤,你可以实现一个功能完善的微信分享插件,满足用户分享帖子到微信并获取积分奖励的需求。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页:
[1]