分享微信小程序 给好友

html

<button class="fixed-text fixed-button" open-type="share" title="分享" hover-class="none">分享好友</button>

js

/**
   * 用户点击右上角分享  或点击按钮分享
   */
  onShareAppMessage: function() {
    //生成唯一编号
    var num = util.create_uuid();
    var shareObj = {
      title: '传化保险商城',
      path: '/pages/index/index?origin_from=share&origin_num=' + num,
      imageUrl: '/images/share.png'
    }
    //保存分享记录 调用自己的接口记录数据
    util.save_user_share(shareObj.title, shareObj.path, shareObj.imageUrl, num);
    return shareObj;
  },
  
 /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    var that = this;
    app.firstload(function(res) {
      //分享进入 判断是否是分享进入的
      console.log(options)
      if (options.origin_from == 'share') {
        //更新分享记录 调用自己的接口更新记录数据
        util.update_user_share(options.origin_num);
      }
    })
  },

接口

// 保存分享记录

    public function share_save() {
        $openid = $_REQUEST['openid'];
        $title = $_REQUEST['title'];
        $path = $_REQUEST['path'];
        $img_url = $_REQUEST['img_url'];
        $num = $_REQUEST['num'];

        //用户昵称
        $username = db('weixin_user')->where(['OpenId' => $openid])->value('NickName');

        //新增分享记录
        $data['num'] = $num;
        $data['openid'] = $openid;
        $data['title'] = $title;
        $data['path'] = $path;
        $data['img_url'] = $img_url;
        $data['create_time'] = time();
        $data['create_user'] = $username;
        $res = db('tf_share')->insert($data);
        if ($res != false) {
            $return['status'] = 1;
            $return['info'] = '操作成功';
        } else {
            $return['status'] = 0;
            $return['info'] = '操作失败';
        }
        exit(json_encode($return));
    }

    //更新分享记录

    public function share_update() {
        $openid = $_REQUEST['openid'];
        $num = $_REQUEST['num'];

        //用户昵称
        $username = db('weixin_user')->where(['OpenId' => $openid])->value('NickName');

        //获取分享的记录
        $share_info = db('tf_share')->where(array('num' => $num))->find();

        if (!count($share_info)) {
            $return['status'] = 0;
            $return['info'] = '分享信息不存在';
            exit(json_encode($return));
        }

        //新增或更新
        $where['openid'] = $openid;
        $where['share_id'] = $share_info['id'];
        $share_user_info = db('tf_share_user')->where($where)->find();

        if ($share_user_info) {
            $data['ip'] = request()->ip();
            $data['update_time'] = time();
            $data['update_user'] = $username;
            $res = db('tf_share_user')->where($where)->update($data);
        } else {
            $data['share_id'] = $share_info['id'];
            $data['openid'] = $openid;
            $data['ip'] = request()->ip();
            $data['create_time'] = time();
            $data['create_user'] = $username;
            $res = db('tf_share_user')->insert($data);
        }

        if ($res != false) {
            $return['status'] = 1;
            $return['info'] = '操作成功';
        } else {
            $return['status'] = 0;
            $return['info'] = '操作失败';
        }
        exit(json_encode($return));
    }

数据库

CREATE TABLE `t_tf_share` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `num` varchar(100) NOT NULL COMMENT '分享唯一编号',
  `openid` varchar(50) NOT NULL COMMENT '用户openid',
  `title` varchar(100) NOT NULL COMMENT '分享标题',
  `img_url` varchar(255) NOT NULL COMMENT '分享描述',
  `path` varchar(255) NOT NULL COMMENT '分享路径',
  `create_time` int(11) DEFAULT NULL COMMENT '创建时间',
  `create_user` varchar(100) DEFAULT NULL COMMENT '创建者',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `source` (`num`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='分享记录表';

CREATE TABLE `t_tf_share_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `openid` varchar(50) NOT NULL COMMENT '用户openid',
  `share_id` int(11) DEFAULT NULL COMMENT '分享id',
  `ip` varchar(20) NOT NULL COMMENT '用户ip地址',
  `create_time` int(11) DEFAULT NULL COMMENT '创建时间',
  `create_user` varchar(100) DEFAULT NULL COMMENT '创建者',
  `update_time` int(11) DEFAULT NULL COMMENT '更新时间',
  `update_user` varchar(100) DEFAULT NULL COMMENT '更新者',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='分享用户表(通过分享链接进入的用户)';

CREATE TABLE `t_weixin_user` (
  `Id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `OpenId` varchar(50) DEFAULT NULL COMMENT '用户OpenId',
  `FakeId` varchar(50) DEFAULT NULL COMMENT '用户唯一标识(已废弃)',
  `NickName` varchar(100) DEFAULT NULL COMMENT '呢称',
  `ReMarkName` varchar(50) DEFAULT NULL COMMENT '废弃',
  `Username` varchar(50) DEFAULT NULL COMMENT '废弃',
  `Signature` text COMMENT '废弃',
  `Country` varchar(50) DEFAULT NULL COMMENT '废弃',
  `Province` varchar(50) DEFAULT NULL COMMENT '省份',
  `City` varchar(50) DEFAULT NULL COMMENT '城市',
  `Sex` int(11) DEFAULT NULL COMMENT '姓别',
  `GroupId` int(11) DEFAULT NULL COMMENT '分组',
  `HeadImg` varchar(150) DEFAULT NULL COMMENT '头像地址',
  `Status` int(11) DEFAULT NULL COMMENT '状态:0取消关注,1已关注,2未关注有访问记录',
  `Source` varchar(65) DEFAULT '0' COMMENT '推广场景值ID',
  `UnionId` varchar(50) DEFAULT NULL COMMENT '公众号绑定唯一Id',
  `CompanyId` int(11) DEFAULT NULL COMMENT '所属公司id(表:t_company)',
  `ConfigId` int(11) DEFAULT NULL COMMENT '公众号id(表:t_config自增id)',
  `CreateTime` int(11) DEFAULT NULL COMMENT '创建时间',
  `UpdateTime` int(11) DEFAULT NULL COMMENT '微信User表的更新时间',
  PRIMARY KEY (`Id`) USING BTREE,
  KEY `CompanyId` (`ConfigId`) USING BTREE,
  KEY `OpenId` (`OpenId`) USING BTREE,
  KEY `UninId_ConfigId` (`UnionId`,`ConfigId`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='关注用户';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值