django – 微信公众号开发之网页开发

  • A+
所属分类:Python教程 学编程

官方文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

一、网页接入公众号配置

接口权限里 --> 找到网页账号 --> 网页授权获取用户基本信息(点修改) --> 将我们的域名写到里面。
django - 微信公众号开发之网页开发
django - 微信公众号开发之网页开发

出现如下提示表示配置成功(注意,上面填写的域名需要可以通过该域名访问到你的程序)

django - 微信公众号开发之网页开发

二、代码内容如下

1.urls.py内容

from django.conf.urls import url
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r'^index/$', views.index),
]

2.views.py内容

from django.shortcuts import render,redirect,HttpResponse
import hashlib
import xmltodict
import time
from urllib.request import urlopen
import json
import requests

def index(request):
    # 获取code
    code = request.GET.get("code")
    if code == "":
        return HttpResponse("code null")

    #向微信服务器发送HTTP请求,获取access_token
    url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=%s&secret=%s&code=%s&grant_type=authorization_code" %(WECHAT_APPID, WECHAT_APPSECRET, code)
    # 通过urllib向微信的地址发送请求
    response = urlopen(url)
    # 将json数据解析为字典格式
    rep_dict = json.loads(response.read())
    # 判断是否请求成功,如果请求成功就获取access_token
    if 'errcode' in rep_dict:
        return HttpResponse('获取access_token 失败')
    access_token = rep_dict.get("access_token")
    open_id = rep_dict.get("openid")

    # 向微信发送http请求,获取用户的资料
    url = "https://api.weixin.qq.com/sns/userinfo?access_token=%s&openid=%s&lang=zh_CN" %(access_token, open_id)
    response = urlopen(url)
    user_dict_data = json.loads(response.read())
    if "errcode" in user_dict_data:
        return HttpResponse('获取用户数据失败')
    # 将用户信息填充到页面
    #返回页面
    return render(request,"index.html",{"user":user_dict_data})

3.index.html页面
这里只是展示了用户数据,具体页面请根据自身需求来写。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>微信网页开发</title>
    <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">
</head>
<body>

<div class="container-fluid">
<div class="row">
        <h1 class="col-xs-6 col-md-6 col-md-offset-3 col-xs-offset-3">Welcome To Wechat Developer Test Package !</h1>
        <p class="col-xs-6 col-md-6 col-md-offset-3 col-xs-offset-3">openid:{{ user.openid }}</p>
        <p class="col-xs-6 col-md-6 col-md-offset-3 col-xs-offset-3">昵称:{{ user.nickname }}</p>
{#        <p class="col-xs-6 col-md-6 col-md-offset-3 col-xs-offset-3">性别:{{ user.sex }}</p>#}
        <p class="col-xs-6 col-md-6 col-md-offset-3 col-xs-offset-3">性别:{% if user.sex == 1 %}男
        {% elif user.sex == 1 %}女
            {% elif user.sex == 0 %}未知
        {% endif %}</p>
        <p class="col-xs-6 col-md-6 col-md-offset-3 col-xs-offset-3">省:{{ user.province }}</p>
        <p class="col-xs-6 col-md-6 col-md-offset-3 col-xs-offset-3">市:{{ user.city }}</p>
        <p class="col-xs-6 col-md-6 col-md-offset-3 col-xs-offset-3">国家:{{ user.country }}</p>
<img src="{{ user.headimgurl }}" alt="">
    </div>
</div>

<script src="/static/jquery-3.2.1.min.js"></script>
<script src="/static/bootstrap/js/bootstrap.min.js"></script>

</body>
</html>

三、实现访问

3.1、通过访问如下链接实现访问

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

3.2、参数说明
django - 微信公众号开发之网页开发

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: