刚刚做了微信的自定义分享,折腾了好一会,完了记个笔记。

微信JS-SKD说明文档

本次测试需要:通过ICP备案的域名、已认证的微信公众号

配置篇

1.设置》公众号设置》功能设置》JS接口安全域名

直接将域名填写进入就好,可以是yeli.studio ,也可以是abc.yeli.studio。此时是无法保存的,需要将MP_verify_XWsldS5dzRvbRcvT.txt下载下来拷贝到域名根目录下面,待会点击保存的时候,微信会通过链接:abc.yeli.studio/MP_verify_XWsldS5dzRvbRcvT.txt来验证是否可以访问。

补充:

test_nginx.conf

server {

# the port your site will be served on

listen 80;

# the domain name it will serve for

server_name abc.yeli.studio; # substitute your machine's IP address or FQDN

charset utf-8;

# max upload size

client_max_body_size 75M; # adjust to taste

# Django media

location /media {

alias /root/application_all/media; # your Django project's media files - amend as required

}

location /static {

alias /root/application_all/static; # your Django project's static files - amend as required

}

# Finally, send all non-media requests to the Django server.

location / {

uwsgi_pass unix:///root/application_all/project/register_site/activity.sock; # for a file socket

include /root/application_all/project/register_site/uwsgi_params; # the uwsgi_params file you installed

}

}

像这样的nginx配置根目录是没有对应的文件夹的,它直接对接到了程序应用。

此种情况可以在程序应用里面增加一个url路由,我使用Django,那么就是这样:

1.在urls.py中添加一个路由

urlpatterns = [

...

url(r'MP_verify_XWsldS5dzRvbRcvT.txt',views.getMP_varify),

...

]

2.在views.py 中返回此文本MP_verify_XWsldS5dzRvbRcvT.txt中的字符串

def getMP_varify(request):

return HttpResponse ("XWsldS5dzRvbRcvT")

点击保存,成功

设置域名

2.开发》基本配置

启用开发者,获得AppID、AppSecret两个参数

然后填写IP白名单,也就是你服务器所在的公网ip

启用开发者/设置IP白名单

服务端篇

由前端发送ajax到服务端获取,前端需要抓去当前页面url提交给服务端。

服务端的工作如下:

获取token:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}

通过token获取ticket:https://api.weixin.qq.com/cgi-bin/ticket/getticket?type=jsapi&access_token={token}

相关参数生成:

利用下面微信提供的sign.py文件,传入ticket和页面url即可。

http://demo.open.weixin.qq.com/jssdk/sample.zip

备注:链接中包含php、java、nodejs以及python的示例代码供第三方参考,第三方切记要对获取的accesstoken以及jsapi_ticket进行缓存以确保不会触发频率限制。

服务端返回json样例:

{

appId:"wxb6d7b7803694fc83"

jsapi_ticket:"kgt8ON7yVITDhtdwci0qeSFCSQshWFBoH3E_uwLdKTAex6sBMGa0x7Jk_-09rdTaErwM475Y1ScmIZkNcFeWNQ"

nonceStr:"6WPMJHSpBzWLO0p"

signature:"1fb234358370736216c1f76badb489fa1100e92d"

timestamp:1505206494

url:"http://abc.yeli.studio/"

}

至此,服务端的工作就完了

前端篇

$.ajax({

url:'http://abc.yeli.studio/get_wexin_params',

type:'post',

data:{

"share_url":window.location.href.split('#')[0],

"csrfmiddlewaretoken":$("input[name='csrfmiddlewaretoken']").val()

},

success:function(_data){

wx.config({

debug: false,

appId: 'wxb6d7b7803694fc83',

timestamp: _data.timestamp,

nonceStr: _data.nonceStr,

signature: _data.signature,

jsApiList: ["onMenuShareTimeline","onMenuShareAppMessage","onMenuShareQZone","onMenuShareQQ"]

});

wx.ready(function () {

var title='我是标题'

var desc='我是描述内容'

var link='http://abc.yeli.studio/' // 分享链接,该链接必须在公众号JS安全域名之下,`http://abc.yeli.studio/another_page`也是可以的

var imageUrl='http://abc.yeli.studio/media/QQ20170911-150722copy.png'

//分享到消息

wx.onMenuShareAppMessage({

title: title,

desc: desc,

link: link,

imgUrl: imageUrl,

type: '', // 分享类型,music、video或link,不填默认为link

dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空

success: function () {

//分享成功

},

cancel: function () {

// 取消分享

}

})

//分享到朋友圈

wx.onMenuShareTimeline({

title: title, // 分享标题

link: link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致

imgUrl: imageUrl, // 分享图标

success: function () {

// 分享成功

},

cancel: function () {

// 取消分享

}

})

})

}

})

至此,网页的自定义内容分享完成。

微信公众号

微信公众平台修改服务器,微信公众平台开发配置及自定义分享相关推荐

  1. 开启微信公众号定位服务器,微信公众号的定位是怎样的?

    现在很多的商家为了让自己的生意越做越好,所以他们都会有着属于自己的微信号,这样不但能够让他们有着一个更好的宣传方式,也能够让他们通过这个平台来把自己的事业发展得更大,毕竟现在网络是一个很好的平台,如果 ...

  2. 如何实现微信公众号预约服务器,微信公众号的微信预约是怎么实现的

    微信公众平台预定系统软件大伙儿在平时都见到过,运用公众号制作的微信预约系统软件,不但能便捷客户,还能我们一起做为店家能立即搜集到客户的预定订单信息,能节约彼此的時间,提升预定的高效率,下边大家一起来看 ...

  3. 腾讯:微信号能修改,微信帐号不允许修改

    点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐] 2020 年了,微信号终于可以修改了. 但是干完坏事,改个微信号就能溜之大吉? 你要知道微信号.微信帐号,是不一样的. 近期腾讯微信官方带 ...

  4. 微信人人商城云服务器,微信支付 · 微智人人商城使用文档 · 看云

    * #### **支付管理** 添加新模板 :-: ![](https://box.kancloud.cn/a39c011c0de721adce0ebef9b95162d4_1151x763.png) ...

  5. 微信人人商城云服务器,微信支付配置

    # **微信支付配置流程** ### **配置支付前需开通相应权限,[点击查看所需开通的权限](http://wiki.rrsc.cn/renrenshopv5/1833366)** * 微信支付,是 ...

  6. 请开启微信或者手机定位服务器,微信在哪里设置定位(微信开启定位功能设置)...

    微信在哪里设置定位(微信开启定位功能设置)微信是一个提供公众平台,朋友圈消息,推送等功能的免费应用程序.爱玩手机的人基本上都下载了微信作为通讯的工具.不仅可以视频打电话,发信息,还隐藏了很多便利生活的 ...

  7. 微信7.0版本服务器,微信7.0版本官方版

    微信7.0版本官方版可以给喜欢用微信聊天的用户能够随时使用微信聊天,在微信7.0版本上面,想要怎么发表情发微信都可以,大家可以跟自己的微信好友通话语音视频,还能利用微信支付扫码等 微信7.0版本官方版 ...

  8. 信息平台课件服务器,《CDN平台介绍v》PPT课件.ppt

    <<CDN平台介绍v>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<CDN平台介绍v>PPT课件.ppt(22页珍藏版)>请在装配图网上搜索. ...

  9. 局域网下微信无法连接到服务器,微信无法连接到服务器怎么办

    软件大小:36.17MB 软件类型:聊天社交 软件评级: 查看详情 最近很多用户在问小编微信无法连接到服务器怎么办,其实解决方法非常的简单,但很多用户不知道该怎么解决,下面来看看小编给大家带来的详细的 ...

最新文章

  1. Android 相机,视频录制
  2. 锁用不好,可能把自己锁住哦!(解决多线程的死锁问题)
  3. Linux tar将分割的小文件进行合并
  4. 汇编语言(十四)之判断字符串是否包含数字
  5. ps中对齐,历史记录,图层
  6. 典型的异步客户端套接字构建
  7. vs2017可以写python_『vs python 使用教程』怎么用VS2017写一个最简单的Python程序,比如hello world?...
  8. js 禁止剪切、复制、粘贴的文本框代码
  9. OpenCV如何提取人眼区域的眼球位置
  10. QT6.1.2下载和安装教程
  11. 安装配置管理 之 LumaQQ 的安装和使用
  12. MSP430 DM430-A开发板学习笔记(二)MSP430f149与hc06蓝牙模块的使用
  13. 怎样把文件转成bt文件?
  14. 乒乓球:浅析业余高手从输球中总结的10条心得!
  15. 在n*n方阵里填入1,2,...n*n,要求填成蛇形
  16. linux给PATH添加变量,给PATH变量添加路径--用Enki学Linux系列(6)
  17. vue中怎么把图片转换成base64字符串 , 以及base64字符串怎么转换成图片路径
  18. EtherCAT简介
  19. oracle字符集增加生僻字,Oracle SQL一个“生僻字”的优化
  20. 企业级市场“两马战”:云计算将成重要战场

热门文章

  1. Python兼职半月赚了5570元:边学习边赚钱真的很爽!
  2. 如何彻底禁用 werfalut.exe
  3. A股全市场个股涨停板明细来袭!—股票数据远程下载服务升级
  4. 沟通“黄金圈”,揭秘有效沟通最佳思维方式
  5. plt.contour()功用
  6. python3GUI--翻译器-v2.0(附源码)
  7. matlab2010 notebook,Matlab在Win10 64位下用notebook的问题
  8. 个性篮球队名_你的篮球个性是什么
  9. python爬虫爬取漫画(仅供学习)
  10. Go是Google的语言,而不是我们的语言