Esempio n. 1
0
    def send_tpl_msg(cls, openid, tpl_id, data, url, msg_type=1):

        ret = WeixinService.send_template_message(openid=openid,
                                                  template_id=tpl_id,
                                                  data=data,
                                                  url=url)

        weixin_user = WeixinService.get_weixin_user(openid=openid)

        msg_log = MsgSendLog(weixin_user=weixin_user,
                             msg_type=msg_type,
                             title=data['keyword1']['value'],
                             reco_num=data['keyword2']['value'],
                             display_time=data['keyword3']['value'],
                             url=url,
                             errcode=ret.get('errcode'),
                             errmsg=ret.get('errmsg'))
        msg_log.save()
        return ret
Esempio n. 2
0
    def get(self, request):

        # if not self.validate():
        #     return HttpResponseBadRequest('Verify Failed')

        self.request = request

        code = self.request.REQUEST.get('code')
        next_url = self.request.REQUEST.get('next_url')

        if not error_weixin_code(code):
            return HttpResponseBadRequest('Verify Failed')

        user_base = WeixinService.get_openid(
            code=code
        )
        if not user_base:
            return HttpResponseBadRequest('Verify Failed')

        openid = user_base.get('openid')
        access_token = user_base.get('access_token')

        # save session
        self.save_token_to_session(
            openid=openid,
            access_token=access_token
        )

        # get weixin user sns info
        readlly_weixin_user = WeixinService.get_weixin_user(
            openid=openid
        )

        redirect_next_url = self.NEXT_URL_META.get(next_url, REDIRECT_LOGIN_URL)
        redirect_next_url = redirect_next_url[:redirect_next_url.find('?from=weixin')]
        if readlly_weixin_user:
            pinbot_user = readlly_weixin_user.user
            if pinbot_user.is_active:
                return redirect('{0}?is_bind=1&weixin_auth=1'.format(redirect_next_url))

        return redirect(redirect_next_url)
Esempio n. 3
0
    def send_tpl_msg(cls, openid, tpl_id, data, url, msg_type=1):

        ret = WeixinService.send_template_message(
            openid=openid,
            template_id=tpl_id,
            data=data,
            url=url
        )

        weixin_user = WeixinService.get_weixin_user(openid=openid)

        msg_log = MsgSendLog(
            weixin_user=weixin_user,
            msg_type=msg_type,
            title=data['keyword1']['value'],
            reco_num=data['keyword2']['value'],
            display_time=data['keyword3']['value'],
            url=url,
            errcode=ret.get('errcode'),
            errmsg=ret.get('errmsg')
        )
        msg_log.save()
        return ret