微信开发

微信公众平台开发——微信授权登录(OAuth2.0)

北城以北 提交于 2019-11-30 11:53:40
1、OAuth2.0简介    OAuth (开放授权)是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。   允许用户 提供一个令牌 , 而不是用户名和密码来访问他们存放在特定服务提供者的数据 。每一个令牌授权一个特定的网站(例如,视频编辑网站)在特定的时段(例如,接下来的2小时内)内访问特定的资源(例如仅仅是某一相册中的视频)。这样,OAuth允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要分享他们的访问许可或他们数据的所有内容。   我们这里主要模拟在微信公众号中使用OAuth2.0进行授权,获取用户的基本信息的过程。详细的开发文档可查看微信的官方文档。   微信公众平台开发者文档: http://mp.weixin.qq.com/wiki/14/89b871b5466b19b3efa4ada8e577d45e.html 2、获取测试公众账号及其相关配置 1)、公众测试账号获取   访问上面的连接,选择“接口测试号申请”获得直接打开 http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index 通过微信客户端扫码登录即可登录。  

【源码分享下载】一款基于微客服的仿微信的聊天软件

心不动则不痛 提交于 2019-11-30 09:45:51
一款基于微客服的仿微信的聊天软件 服务分类: 其它开发,推送 使用服务: 微客服 , 小米推送 功能分类: 社交 支持平台: Android 运行环境: Android 开发语言: Java 开发工具: Eclipse 源码大小: 7.11MB 下载地址: http://www.devstore.cn/code/info/68.html 源码简介 通过集成微客服的SDK和小米推送等常用SDK实现一款仿微信聊天的工具。 源码片段 源码运行截图 来源: CSDN 作者: 文艺范Coder 链接: https://blog.csdn.net/zz2043191420/article/details/39288745

如何开发一个仿微信的 Web IM?

非 Y 不嫁゛ 提交于 2019-11-30 09:44:33
Company: Yappam Date: 20150325 Author: Yuewen Hao 序 在这个开源盛行的年代, 想要做出一些功能性开发, 一般来说只要找对了方向, 用对了工具, 都会简单的让你自己都觉得不可思议. 当然, 更重要的是, 我们可以有更多的精力去陪身边的人, 做自己喜欢的事情. 想想就觉得很高兴. 回到主题. 今天, 我们就来看看怎么可以做出一款仿微信客户端聊天的Web IM. 注: IM (Instant Message) 即时性消息, 就比如 QQ, 它就属于客户端的即时性聊天软件. 效果如图: 基础概念 为了实现这个效果, 我们首先需要知道几个简单的概念. XMPP 协议 简单来说, 就是我们需要通过一种规则来聊天. 就像摩斯密码那样. 通过不同长短和个数的 “滴(Di)” “嗒(Da-)”, 对应着协议规则翻译成不同的字母. 就比如, “Di” “Da-” 就是”A”, 而 “Di” “Di” “Di” “Di” 就代表着 “H”. 如图: 而在XMPP 协议中, 它的规则是 XML 文件来定义的. 它通过三种基本的XML 节:IQ Stanza(IQ 节), Presence Stanza(Presence 节), Message Stanza(Message 节), 从而形成了一个基本的即时通信协议平台. 注: Stanza 代表XML消息节

微信小程序开发环境安装以及相关设置配置

跟風遠走 提交于 2019-11-30 08:09:15
微信小程序开发环境安装以及相关设置配置 一.安装 软件名称: wechat_devtools_1.02.1907232_x64 软件安装地址: https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 使用官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/ 二.小程序项目创建以及设置 点创建项目时候其中appid是唯一的需要去自己小程序账号上查找 下面选项一般 不使用云服务 其中相关设置点击 设置 或者右上角详情可以点出相关设置 其中本地测试需要在右上角 详情 → 本地设置 → 不校验合法域名进行勾选 三.目录结构 一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下: 文件 必需 作用 app.js 是 小程序逻辑 app.json 是 小程序公共配置 app.wxss 否 小程序公共样式表 一个小程序页面由四个文件组成,分别是: 文件类型 必需 作用 js 是 页面逻辑 wxml 是 页面结构 json 否 页面配置 wxss 否 页面样式表 注意:为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文件名。 四.常用配置 一.配置项 属性 类型 必填 描述 最低版本 pages string[

微信小程序开发过程中tabbar页面显示的相关问题及解决办法

落花浮王杯 提交于 2019-11-30 07:52:17
在微信小程序的开发过程中如果有使用过tabbar的同学,我相信一定会遇到一些困扰。为什么有些时候代码中明明已经在app.json里面增加了tabbar,可以页面中就是不显示呢?可不可以有些页面显示tabbar,而有些页面不显示tabbar呢?今天我把我在开发过程中遇到的问题整理出来跟大家分享。 问题1:为什么页面底部不显示tabbar? 很多网友(包括我自己)也遇到过此类问题,在app.json里面明明加了tabbar,list里面也加了路径怎么就是不显示呢?举例,如下代码,为什么屏幕页面底部没有如期出现tabbar呢? { "pages":[ "pages/clickDemo/clickDemo", "pages/logs/logs", "pages/index/index", "pages/mypage/mypage" ], "window": { "backgroundTextStyle": "dark ", "navigationBarBackgroundColor": "#ddd", "navigationBarTitleText": "Tabbar Demo", "navigationBarTextStyle": "black", "backgroundColor": "#ff0000" }, "tabBar": { "color": "#000000",

微信开发之调用扫一扫接口

眉间皱痕 提交于 2019-11-30 07:46:47
前言 这是自己第一次进行微信开发,自己之前一直以为很简单,但是自己真正来做的时候才发现会遇到很多问题。认识的一个小伙伴进行微信开发已经挺久了,如果需要可以直接问他或者将他的源代码拿过来。但是想想这个项目并不是很赶时间,因为做的算是一个公益项目,负责人对自己也很好。所以自己就憋着不去问别人,自己独立完成。折腾了一番以后,发现了很多坑,在点击按钮,弹出扫一扫界面的那一刹那,什么感觉呢?程序猿都懂的。 调用扫一扫接口遇到的那些坑 1、太过于相信官方的东西 太过于相信官方的东西(这里没有黑腾讯的意思),调用接口如果想要一个demo的话,大家都会下载官方的demo,demo里面说的很清楚 JAVA, Node, Python 部分代码只实现了签名算法,需要开发者传入 jsapi_ticket 和 url ,其中 jsapi_ticket 需要通过 http://api .weixin .qq .com /cgi-bin/ticket/getticket?type=jsapi&access_token=ACCESS_TOKEN 接口获取,url 为调用页面的完整 url 。 PHP 部分代码包括了获取 access_token 和 jsapi_ticket 的操作,只需传入 appid 和 appsecret 即可,但要注意如果已有其他业务需要使用 access_token 的话,应修改获取

使用delphi+intraweb进行微信开发4—微信消息加解密

穿精又带淫゛_ 提交于 2019-11-30 07:43:50
在 上一讲 当中我做了个简单的微信文本消息回显应用,当时是以微信明文方式实现的,其实微信推荐的是消息应该加密传输以增加安全性,所以这讲说说微信消息的加解密。 在微信的 帮助页面 上可以下载微信消息加解密的例程,可惜的是没有Delphi语言的示例,网上搜索一番,没有人贡献出写好的Delphi版的微信加解密算法单元,好在有官方示例的C#版的,那就按照C#的改一个吧。 微信消息是以AES算法进行的加密处理,而遗憾的是Delphi并没有内置的AES算法单元,必须找第三方实现的,不过一般第三方实现的算法都因为种种原因并不完善,需要使用者酌情修改,所以在基础算法支持上Delphi确实和.net以及java这类的开发语言比不了。 呵呵,上网找Delphi版AES算法吧。在在这里要感谢 cnpack开发组 ,他们不但推出一流的delphi开发环境增强组件还有开源组件包cnvcl,这个组件包中有SHA1、AES、MD5等多种算法单元,我打开AES算法单元查看,发现封装的很完美,ECB、CBC模式均支持,呵呵,幸福了 。 参考C#示例代码一通修改测试,省略几昼夜苦干的吐槽终于开花结果: 呵呵,这个或者是网上目前唯一的开源的Delphi版的微信加解密算法单元吧,激动! {*******************************************************************

Delphi XE7 用indy开发微信公众平台(8)- 自定义菜单

点点圈 提交于 2019-11-30 07:43:31
加我微信:Leedege一起交流Delphi开发经验 const CreateMenuUrl = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token=%s'; function CreateMenus(AccessToken: String): TJSONObject; var Url: string; J: TJSONObject; m1: TJSONObject; m2, m21, m22: TJSONObject; m3, m31, m32, m33: TJSONObject; temp: RawByteString; begin J := TJSONObject.Create; try Url := Format(CreateMenuUrl, [AccessToken]); J.AddPair('button', TJSONArray.Create); with J.GetValue('button') as TJSONArray do begin m1 := TJSONObject.Create; m1.AddPair('type', 'view'); m1.AddPair('name', '微商城'); m1.AddPair('url', 'http://wd.koudai.com/?userid

Delphi XE7 用indy开发微信公众平台(9)- 高级群发接口

核能气质少年 提交于 2019-11-30 07:40:11
高级群发接口 原文链接:http://www.cnblogs.com/devinlee/p/4282748.html 扫下方二维码关注,测试效果 1、上传多媒体文件(这里以上传图片为例) uses IdMultipartFormData; const UpMediaUrl = 'http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s'; function UpMedia(HTTP: TIdHTTP; AccessToken, MediaType, MediaFile: String): String; var J: TJSONObject; Url: String; temp: String; FormData: TIdMultiPartFormDataStream; RespData: TStringStream; begin RespData : = TStringStream.Create( '' ); FormData : = TIdMultiPartFormDataStream.Create; J : = TJSONObject.Create; try FormData.AddFile( ' media ' , MediaFile); Url : = Format

使用delphi+intraweb进行微信开发5—准备实现微信API,先从获取AccessToken开始

馋奶兔 提交于 2019-11-30 07:39:52
在前4讲中我们已经使iw开发的应用成功和微信进行了对接,再接下来的章节中我们开始逐一尝试和实现微信的各个API, 开始前先来点准备工作 首先需要明确的是,微信的API都是通过https调用实现的,分为 post方法 调用和 get方法 调用。不需要上传数据的采用get方法(例如获取AccessToken),而需要向微信服务器提交数据的采用post方法(例如创建菜单)。 微信方法调用均需传递AccessToken(URL参数方式), 这个AccessToken不是我们微信接入时使用的Token ,这个AccessToken专门用于微信API调用,AccessToken有过期时间,而且每天有请求次数限制,据说是为了防止不良的程序调用导致微信服务器出现异常。因此在这种情况下则必须在获取AccessToken后进行保存,在即将过期前再重新获取。 好吧,让我们开始:首先定义post和get方法。这里我们采用Indy实现,不需要再安装什么第三方组件了,也没有大量并发的要求(咱们这是客户端程序),简单易用最重要。 /// <summary> /// 向指定URL发起Get请求 /// </summary> /// <param name="http">TIdHTTP</param> /// <param name="URL">指定URL</param> /// <param name="Max"