Senparc.Weixin.MP SDK 微信公众平台开发教程(五):使用Senparc.Weixin.MP SDK

 Senparc.Weixin.MPSDK已经涵盖了微信5.0的所有公共API,以及2013年10月29日升级之后大部分实用的接口。  整个项目的源代码以及已经编译好的程序集可以在这个项目中获取到:https://github.com/JeffreySu/WeiXinMPSDK   我们现在从无到有建立一个ASP.NETMVC项目,来看一下如何与微信进行对接(Webforms原理也都是一样,只不过把Controller中的Action换成.aspx页面就可以了)。  将要演示的项目源代码也可以在开源项目中找到(因为源代码中要兼顾2个项目,有一个公用项目,所以与下面展示的结构略有不同,逻辑完全一致):  MVC:https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP.Sample  WebForms:https://github.com/JeffreySu/WeiXinMPSDK/tr...

Senparc.Weixin.MP SDK 微信公众平台开发教程(七):解决用户上下文(Session)问题

 从这篇文章中我们已经了解了微信公众平台消息传递的方式,这种方式有一个先天的缺陷:不同用户的请求都来自同一个微信服务器,这使得常规的Session无法使用(始终面对同一个请求对象,况且还有对方服务器Cookie是否能保存的问题)。  这就要求我们自己建立一套独立的对话上下文请求机制。  上一篇《Senparc.Weixin.MPSDK 微信公众平台开发教程(六):了解MessageHandler》中我们了解到,Senparc.Weixin.MPSDK提供了一套非常便捷的消息处理机制,这套机制上面,我们有增加了一个叫MessageContext的上下文处理机制,下面我们就来说一说这个功能的使用(参考开源项目Wiki中的《用户上下文WeixinContext和MessageContext》一文)。   更多实际应用的代码可以参考开源项目中的Demo:https://github.com/JeffreySu/WeiXinMPSDK,此外您也可以关注下方的微信二维码,不断发送文字及各种信息进行测试(发送文...

Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明

上一篇《Senparc.Weixin.MPSDK 微信公众平台开发教程(八):通用接口说明》介绍了如何通过通用接口获取AccessToken,有了AccessToken,我们就可以来操作自定义菜单,以及其他的高级接口,这一篇单讲自定义菜单。 自定义菜单分为一级菜单和二级菜单。一级菜单数量为1-3个,即打开公众账号直接可以看到排列在最下方的最多3个按钮。一级菜单的文字最多不能超过16字节(相当于8个汉字)。二级菜单从属于一级菜单,数量为1-5个。二级菜单的文字不最多不能超过40字节(相当于20个汉字)。无论一级菜单还是二级菜单,都有两个触发事件可以选择,分别是:点击(click,值不能超过128字节)和打开网址(view,url不能超过256个字节)。当一个一级菜单下有二级菜单存在的时候,这个一级菜单按钮被点击不会有任何事件发生。  使用Senparc.Weixin.MPSDK创建自定义菜单非常简单。只需三步:  第一步:获取AccessTokenvaraccessToken=AccessTokenContainer.TryGetToken(appId,appSecr...

Senparc.Weixin.MP SDK 微信公众平台开发教程(十二):OAuth2.0说明

  首先我们通过一张图片来了解一下OAuth2.0的运作模式:  从上图我们可以看到,整个过程进行了2次“握手”,最终利用授权的AccessToken进行一系列的请求,相关的过程说明如下:A:由客户端向服务器发出验证请求,请求中一般会携带这些参数ID标识,例如appId验证后跳转到的URL(redirectUrl)状态参数(可选)授权作用域scope(可选)响应类型(可选)B:服务器返回一个grant授权标识(微信默认情况下称之为code),类似于一个一次性的临时字符串密钥。如果在A中提供了redirectUrl,这里服务器会做一次跳转,带上grant和状态参数,访问redirectUrl。C:客户端的redirectUrl对应页面,凭借grant再次发起请求,这次请求通常会携带一些敏感信息:ID标识密码grant字符串(code)grant类型(可选,微信中默认为code)D:服务器验证ID标识、密码、grant都正确之后,返回AccessToken(注意,这里的AccessToken和之前通用接口、高级接口介绍的AccessToken没有关系,不能交叉使用)...

Senparc.Weixin.MP SDK 微信公众平台开发教程(十三):地图相关接口说明

为了方便大家开发LBS应用,SDK对常用计算公式,以及百度和谷歌的地图接口做了封装。常用计算:  用于计算2个坐标点之间的直线距离:Senparc.Weixin.MP.Helpers.Distance(doublen1,doublee1,doublen2,doublee2)根据距离获取维度差:Senparc.Weixin.MP.Helpers.GetLatitudeDifference(doublekm)根据距离获取经度差:Senparc.Weixin.MP.Helpers.GetLongitudeDifference(doublekm)百度API类:Senparc.Weixin.MP.Helpers.BaiduMapHelper生成百度静态地图URL:BaiduMapHelper.GetBaiduStaticMap(doublelng,doublelat,intscale,intzoom,IList<BaiduMarkers>markersList,intwidth=400,intheight=300)最后生成的地址如下:http://maps.googleapis.co...

Senparc.Weixin.MP SDK 微信公众平台开发教程(十四):请求消息去重

为了确保信息请求消息的到达率,微信服务器在没有及时收到响应消息(ResponseMessage)的情况下,会多次发送同一条请求消息(RequestMessage),包括MsgId等在内的所有文本内容都是一致的。  这种机制确保了在诸如网络状况不佳的情况下消息的回复成功率,但是有时候由于服务器负荷、本身请求过程就需要好几秒才能完成等情况,多次重复的消息反而成了服务器的负担,甚至对业务和数据也可能造成影响。  针对这种情况,SDK增加了去重的设置,只需要在使用MessageHandler的时候加一句话即可: 1messageHandler.OmitRepeatedMessage= true;//启用消息去重功能 1234567891011121314151617181920///<summary> ///最简化的处理流程(不加密) ///</summary> [HttpPost] [ActionName("MiniPost")] public ActionResultMiniP...

Senparc.Weixin.MP SDK 微信公众平台开发教程(十五):消息加密

前不久,微信的企业号使用了强制的消息加密方式,随后公众号也加入了可选的消息加密选项。目前企业号和公众号的加密方式是一致的(格式会有少许差别)。  进入公众号后台的“开发者中心”,我们可以看到Url对接的设置:    点击【修改设置】,可以进入到修改页面:    加密的方式一共有3种:明文模式,即原始的消息格式兼容模式,明文、密文将共存,正式发布的产品不建议使用(因为仍然包含了明文,达不到加密的效果)安全模式,这种模式下消息将会被加密,开发者的服务器可以通过官方给出的算法进行解密,得到明文模式下的消息原文。  凡是加密的消息,返回的信息也需要经过加密。  Senparc.Weixin.MP已经对三类消息作了自动判断,开发的过程中无需关注任何解密和加密的过程,仍然保持“明文模式”下的开发过程即可。  对应的MessageHandler中,我们可以通过一些参数得知目前的加密状态:  messageHandler.UsingEcryptMessage:是否使用了加密信息(包括兼容模式和安全模式)  messageHandler.UsingComp...

微信公众平台自定义菜单及高级接口PHP SDK

SDK源码:1/*2方倍工作室http://www.cnblogs.com/txw1958/3CopyRight2014www.doucube.comAllRightsReserved4*/56classclass_weixin_adv7{8var$appid="";9var$appsecret="";1011//构造函数,获取AccessToken12publicfunction__construct($appid=NULL,$appsecret=NULL)13{14if($appid){15$this->appid=$appid;16}17if($appsecret){18$this->appsecret=$appsecret;19}2021//hardcode22$this->lasttime=1395049256;23$this->access_token="nRZvVpDU7LxcSi7GnG2LrUcmKbAECzRf0NyDBwKlng4nMPf88d34pkzdNcvhqm4clidLGAS18cN1RTSK60p49zIZY4aO13sF-eq...

微信JS SDK使用权限签名算法

jsapi_ticket生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):用第一步拿到的access_token采用httpGET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi成功返回如下JSON:{"errcode":0,"errmsg":"ok","ticket":"bxL...

微信JS SDK Demo

微信JS-SDK分享到朋友圈分享给朋友分享到QQ拍照或从手机相册中选图识别音频并返回识别结果使用微信内置地图查看位置原文:http://www.cnblogs.com/txw1958/p/weixin-js-sdk-demo.html  一、JS部分wx.ready(function(){//1判断当前版本是否支持指定JS接口,支持批量判断document.querySelector('#checkJsApi').onclick=function(){wx.checkJsApi({jsApiList:['getNetworkType','previewImage'],success:function(res){alert(JSON.stringify(res));}});};//2.分享接口//2.1监听“分享给朋友”,按钮点击、自定义分享内容及分享结果接口document.querySelector('#onMenuShareAppMessage').onclick=function(){wx.onMenuShareAppMessage({...
代码星球 代码星球·2020-04-11

官方教程:教你用好微信JS-SDK接口

 微信开放JS-SDK接口,开发者和行业用户可谓是欢欣鼓舞、奔走相告,目测将激起一大波第三方开发商的创新产品!真真是H5开发者的利好!但也有用户表示,还不了解JS-SDK接口到底是啥,究竟怎么用。现在,小编就通过大量实战案例为大家逐一讲解,争取让大家都会用、且用好JS-SDK接口,赶紧往下看吧!  1、分享类接口:支持获取“分享到朋友圈”、“发送给朋友”、“分享到QQ”和“分享到微博”按钮的用户点击状态,同时支持自定义分享内容。  小编解读:说起分享接口应用,最常见的莫过于公众号文章分享。通过分享按钮,用户可以将自己喜欢的文章分享给微信好友,也可分享到微信朋友圈。通过此次开放的分享接口,开发者获得了新的能力:可以在用户分享时,为其设置个性化的分享图片、标题、描述等,从而使分享的内容更生动有趣,以获得更好的传播效果。同时,通过此接口,开发者还可以获知用户是否分享了网页,帮助其更好地评估网页服务是否受用户喜爱等。   ...

使用微信JSSDK自定义微信分享标题、描述、和图标

最近做一个项目的时候用到微信的分享,实现定义分享标题,图片,了解到微信在发布JSSDK后,把包括自定义分享在内的众多网页服务接口进行了统一。如果要想自定义分享自己的网页信息给好友或朋友圈,就最好使用这个统一的网页服务接口。微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。 步骤一:绑定域名 所有的JS接口只能在公众号绑定的域名下调用,先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。(否则报错,显示签名失效) 备注:登录后可在“开发者中心”查看对应的接口权限。 步骤二:引入JS文件在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixi...

如何在mac本上安装android sdk

众所周知的原因,google的很多网站在国内无法访问,苦逼了一堆天朝程序员,下是在mac本上折腾android开发环境的过程:一、先下载androidsdkformac给二个靠谱的网址:a). http://down.tech.sina.com.cn/page/45703.htmlb). http://mac.softpedia.com/get/Developer-Tools/Google-Android-SDK.shtml到这个面下载后,解压到某个目录 二、设置下载的代理服务器命令行进入tools目录然后输入./androidsdk请出SDKManager的图形界面AndroidSDKManager->Preferences...httpproxyserver这里填写:mirrors.neusoft.edu.cn(感谢东软搭建国内的镜像服务器,为广大程序员造福无数)端口填写80,然后把Forcehttps://前的勾勾上 三、mac顶部菜单Tools->ManageAdd-onSite把下面这堆网址:http://mirrors.n...

腾讯云(Linux)安装.net core sdk2.1、net core runtime2.1

按照微软指令安装:sdk2.1:https://www.microsoft.com/net/download/linux-package-manager/centos/sdk-current1.sudorpm-Uvhhttps://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm2.sudoyumupdate3.sudoyuminstalldotnet-sdk-2.1runtime2.1:https://www.microsoft.com/net/download/linux-package-manager/centos/runtime-current 1.sudorpm-Uvhhttps://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm2.sudoyumupdate3.sudoyuminstallaspnetcore-runtime-2.1 最后验证下是否成功:dotnet--help ...

Microsoft dynamic sdk中join应该注意的问题.

QueryExpressionqueryNextSeq=newQueryExpression{EntityName="ep_prodoperationsequence"};queryNextSeq.Criteria.AddCondition("ep_prodroutingno",ConditionOperator.Equal,ePOS.ep_ProdRoutingNo.Id);queryNextSeq.Criteria.AddCondition("ep_sequenceno1",ConditionOperator.NotEqual,ePOS.ep_SequenceNo1);queryNextSeq.ColumnSet.AddColumns("ep_prodoperationsequenceid","ep_sequenceno1","ep_operationsequence");queryNextSeq.AddOrder("ep_sequenceno1",OrderType.Ascending);queryNextSeq.LinkEntities.Add(newLinkEntity("e...
首页上一页...910111213...下一页尾页