V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
kopa
V2EX  ›  分享创造

最近捣鼓的基于微信的领券系统

  •  
  •   kopa · 2016-07-22 14:48:12 +08:00 · 3995 次点击
    这是一个创建于 3038 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用惯了美团的朋友想必都知道,购买一张代金券,付款 80 元抵 100 元。由于我是做美食类的自媒体,所以在想平常接触的商家既然都是发布广告,最主要的目的是引流。倒不如直接可以让商家送出一道免费菜式或者专享折扣,让感兴趣的人去领取。我采取的是收费策略,但是收取的仅 1-2 元,目的是筛选出真正愿意付费的人群(这钱不用到商家手上,同时也不想美团那样先付款)。能切实带动和提高到店消费的几率。

    不知道我说的是否够清晰,哈。大家可以看看

    项目是基于 CI 框架开发,打算开放出来一起捣鼓捣鼓。

    http://h5.imchaotan.com/coupon/index.php/Coupon/Coupon_index/Coupon_Get/bid/9 (因为好像上传不到二维码图片,所以就麻烦点啦)

    在微信打开网址即可。

    20 条回复    2016-08-19 00:34:11 +08:00
    UnisandK
        1
    UnisandK  
       2016-07-22 15:01:15 +08:00
    扫了直接是微信登陆,是啥都不知道,不敢乱授权

    kopa
        2
    kopa  
    OP
       2016-07-22 15:05:48 +08:00
    不是微信登陆,只是授权而已。我的级别可能还不能上传图片-_-引起你的担忧对不住了
    arens
        3
    arens  
       2016-07-22 15:11:05 +08:00
    CI 框架是啥~


    @UnisandK 权限在登陆时不是公开的吗,获取头像,昵称等,应该是最基本的授权吧?
    qiayue
        4
    qiayue  
       2016-07-22 15:11:59 +08:00
    建议一进去先看到内容,点击领取按钮的时候去授权
    kopa
        5
    kopa  
    OP
       2016-07-22 15:14:20 +08:00
    @arens Codeigniter 轻量级 PHP 框架
    kopa
        6
    kopa  
    OP
       2016-07-22 15:15:21 +08:00
    @qiayue 因为我设计的时候逻辑是,通过获取授权后记录微信用户的 nickname ,领取的时候直接是微信支付。
    2b2b
        7
    2b2b  
       2016-07-22 16:11:01 +08:00
    看了下不错,开源吗?
    qiayue
        8
    qiayue  
       2016-07-22 16:18:38 +08:00
    @kopa 跟我 4 楼说的不矛盾
    kopa
        9
    kopa  
    OP
       2016-07-22 16:56:47 +08:00 via iPhone
    如果大家觉得可以继续完善的就开源了,哈
    shellcodecow
        10
    shellcodecow  
       2016-07-22 17:02:51 +08:00
    我想咨询下 微信授权登陆的方式

    如果用户授权过期以后 检查和跳转的方式应该怎么弄
    alex321
        11
    alex321  
       2016-07-22 17:10:19 +08:00   ❤️ 1
    在用户没了解你是干什么的之前,强行获取用户信息,做授权都是耍流氓。
    如果真要,你可以用 basic 的方式,不用这种 user_info 的形式。前者对用户是透明的,顶多看到页面跳转了下,但并无明显感知;而后者是需要用户明确授权的,在对你毫无认知的情况下,就给你点这个授权按钮,产品业务设计上真心对用户心理预期把握不好呃。

    @shellcodecow 微信现在一次 user_info 授权好像有 7 天的有效期了。你判断 openId 或者 unionId 的。这个判断写在一个基础类里面吧,有则继续,没就再拉取一次。如果你一定要授权过期后刷新,可以看文档: https://mp.weixin.qq.com/wiki/4/9ac2e7b1f1d22e9e57260f6553822520.html#.E9.99.84.EF.BC.9A.E6.A3.80.E9.AA.8C.E6.8E.88.E6.9D.83.E5.87.AD.E8.AF.81.EF.BC.88access_token.EF.BC.89.E6.98.AF.E5.90.A6.E6.9C.89.E6.95.88
    passion336699
        12
    passion336699  
       2016-07-22 17:53:53 +08:00   ❤️ 1
    @shellcodecow 通常做微信开发都会专门弄一张粉丝表,如( wechat_follow ),会把粉丝的 openid ,昵称,头像,性别等信息存起来。你可以先基于 snsapi_base ,让用户做一次静默登录,拿到他的 openid ,然后去 wechat_follow 里面根据 openid 查是否存在这条数据,如果有,那你就从 wechat_follow 里面把这个粉丝的信息读出来;如果没有,就进行一次 snsapi_userinfo ,然后引导用户到微信的授权登录页面,授权登录你可以拿到粉丝的基本信息,把他们存到 wechat_follow 里面。
    下次粉丝再进入你的 web 页面的时候,你的表里面已经有数据了,跑一次静默登录,拿到 openid ,其他基本信息从表里取,就不用再做授权登录了。
    passion336699
        13
    passion336699  
       2016-07-22 18:00:56 +08:00
    @shellcodecow 要是按微信接口文档的介绍,授权之后会返回给你一个 code ,通过 code 能换取到 openid,access_token(有效期是 7200S ,用来换取用户的基本信息,如昵称,头像等),和一个 refresh_token(有效期是 30 天, 30 天之后要重新授权)。所以你可以把 access_token,refresh_token 存起来。 access_token 过期,就用 refresh_token 刷新 access_token,然后再用 access_token 换取用户的信息。 refresh_token 过期,那就没办法了,就得重新来一次 OAuth2.0 授权了。这样做可以保证你每次拿到的用户昵称和头像都是用户当前的,比从表里读出来的要好,可能用户换了昵称,头像等信息,但是表里面还是存的他上一次授权时候的信息,没更新。
    passion336699
        14
    passion336699  
       2016-07-22 18:03:18 +08:00
    但是这样弄太麻烦了。干脆直接全部做授权登录,如果 refresh_token 没过期,微信会提示“你近期已授权过 XXX 公众号”,然后重定向到你给的 callback 地址。可能用户体验不是很好 ,哈哈
    passion336699
        15
    passion336699  
       2016-07-22 18:10:29 +08:00
    @kopa 楼主,你这个扫码之后的页面,点了左下角的关注,会跳到一个”识别二维码关注公众号“的页面,其实现在有黑科技,可以跳转到你的公众号主页,如果粉丝没关注你,上面会显示“关注公众号”,关注过了,就是“进入公众号”,只需要把跳转连接设置成“ https://mp.weixin.qq.com/mp/profile_extaction=home&__biz=MzI2NTA0NjE3NQ==&scene=110#wechat_redirect ”,这样就可以了,“ MzI2NTA0NjE3NQ ” 这个值是每个公众号唯一的,我的这个是 TOM 邮箱的。可以通过分享公众号的历史消息页面,拿到这个值,然后替换掉就可以了。你可以在微信里面访问这个试试,不会发图。。其实发张图就知道效果了 @_@
    passion336699
        17
    passion336699  
       2016-07-22 18:14:40 +08:00
    16 层的连接是对的, 15 层的复制 prifile_ext 少了个?
    kopa
        18
    kopa  
    OP
       2016-07-22 19:37:36 +08:00
    @passion336699 感谢,刚测试 ok
    kopa
        19
    kopa  
    OP
       2016-07-22 19:39:26 +08:00
    @alex321 您说的有道理,我之所以用 userinfo ,是因为 snsapi_base 这种静默模式适合已经关注公众号的粉丝使用,而 userinfo 更加适合未关注的用户授权后进入。 至于进入页面前就授权这点确实是有点产品逻辑上的问题,这个必须好好检讨和更新。感谢你的建议^_^
    JiaFeiX
        20
    JiaFeiX  
       2016-08-19 00:34:11 +08:00
    有意思,我们在做一个 美食的微信群机器人,可以跟楼主聊聊一起鼓捣点有意思的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   978 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:24 · PVG 04:24 · LAX 12:24 · JFK 15:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.