Exemplo n.º 1
0
def send_message(uids: list, content: str):
    """发送消息
    :param uids: 待接收消息用户id
    :param uid 用户的key
    :param content 内容
    """
    WxPusher.send_message(content, uids=uids, token=token)
Exemplo n.º 2
0
def show_result(stocks, action, args):
    """Show results."""
    # Return for empty result when set to ignore empty.
    if args.ignore_empty and stocks.index.empty:
        return

    # Output a file when output is set.
    if args.output:
        utils.export_ebk(stocks.index, args.output)

    # Send notification if token and (uids or topic_ids) is set.
    if args.token and (args.uids or args.topic_ids):
        # Format title.
        title = args.title
        if not title:
            if stocks.index.empty:
                title = f'{args.period}级别无可能{action}点'
            else:
                title = f'{args.period}级别可能{action}点'

        content = combine_content(title, stocks)
        WxPusher.send_message(content,
                              token=args.token,
                              uids=args.uids,
                              topic_ids=args.topic_ids)
 def test_create_qrcode(self):
     """Positive case for creating qrcode."""
     res = WxPusher.create_qrcode(
         self.test_create_qrcode.__doc__
     )
     self.assertIsInstance(res, dict)
     self.assertIn('code', res)
     self.assertEqual(1000, res['code'])
 def test_query_user(self):
     """Positive case for querying user."""
     res = WxPusher.query_user(
         1, random.randint(1, 99),
     )
     self.assertIsInstance(res, dict)
     self.assertIn('code', res)
     self.assertEqual(1000, res['code'])
Exemplo n.º 5
0
def push_wechat(token, uids, push_content, url=None, content_type=3):
    response = WxPusher.send_message(
        content=push_content,
        token=token,
        content_type=content_type,
        topic_ids=[],
        uids=uids,
        url=url,
    )
    return response
Exemplo n.º 6
0
 def test_send_message(self):
     """Positive case for sending message."""
     res = WxPusher.send_message(
         self.test_send_message.__doc__,
         config.UIDS,
         url='http://example.com/'
     )
     self.assertIsInstance(res, dict)
     self.assertIn('code', res)
     self.assertEqual(1000, res['code'])
Exemplo n.º 7
0
 def get(self, request):
     extra = request.user.username
     # {'code': 1000, 'msg': '处理成功',
     # 'data':
     # {'expires': 1610079780214,
     # 'code': 'VTofGQDeSo3ezYYfzs1akLQ0vCTKqvM5O35z9iey2TdknDiwQRhdaUhEa98u9vEW',
     # 'shortUrl': 'https://mmbizurl.cn/s/Ognm4CzsM',
     # 'extra': 'hello',
     # 'url':
     # 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQE38DwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyNFpSSFZNSVFjWWoxWUF1VE52Y1QAAgQc1-dfAwQIBwAA'},
     # 'success': True}
     payload = WxPusher.create_qrcode(extra=extra, valid_time=600)
     return JsonResponse(payload)
Exemplo n.º 8
0
    def post(self, request):
        """
        Example POST payload:
        {
          "action":"app_subscribe",//动作,app_subscribe 表示用户关注应用回调,后期可能会添加其他动作,请做好兼容。
          "data":{
              "appId":123,//创建的应用ID
              "appKey":"AK_xxxxxx", //关注应用的appKey,请不要再使用,将来可能会被删除
              "appName":"应用名字",
              "source":"scan", //用户关注渠道,scan表示扫码关注,link表示链接关注,command表示通过消息关注应用,后期可能还会添加其他渠道。
              "userName":"******",
              "userHeadImg":"http://xxxxx/132",//最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空
              "time":1569416451573, //消息发生时间
              "uid":"UID_xxxxxx", //用户uid
              "extra":"xxx"    //用户扫描带参数的二维码,二维码携带的参数。扫描默认二维码为空
          }
        }
        """
        data_payload = json.loads(request.body)
        data_action = data_payload['action']
        data = data_payload['data']
        if data['appId'] != CONFIG.WXPUSHER_APPID:
            raise RuntimeError("回调APPID校验错误!")
        if data_action == 'app_subscribe':
            uid, user_param = data['uid'], data['extra']
            user_profile = UserProfile.objects.get(
                stu_id=user_param)  # raise DoesNotExist if with no luck
            user_profile.wx_uid = uid
            user_profile.valid = True
            user_profile.save()

            WxPusher.send_message("SCU健康报绑定成功,请继续在平台上进行相关操作,并阅读使用说明。",
                                  uids=[uid])

        else:
            raise NotImplementedError
Exemplo n.º 9
0
def create_qrcode(username):
    """创建二维码
    :param extra 额外参数,可以用手机号
    """
    return WxPusher.create_qrcode(extra=username, token=token)