微信小程序开发 [00] 写在前面的话,疯狂唠唠

我总是喜欢在写东西之前唠唠嗑,按照惯例会在博文的开篇写这么一段“写在前面的话”,这次却为了这个唠嗑单独开了一篇文,大概预想着要胡说八道的话有点多。前段时间突然对小程序来了兴趣,说句实话,我都忘记了准确的导火线,大概是一直想做点什么个人的小作品,结果又因为贫穷限制了我买服务器。索性这个世界上有种东西叫“第三方API”,我买不起,我用别人的还不行吗?这个问题解决了,还有个问题没解决,那就是我这个人既不会iOS也不会Android,总不能用第三方API写Web吧,那不是也得要个人服务器,又回到最初的起点。于是用三方API结合微信小程序就很有意思了,适配移动端也容易,体积小,开发起来成本也远远更低,加上现在微信大大提高了小程序在其生态的入口和地位,说不定掌握它的开发也是未来升职加薪的助力。说干就干,索性就去慕课网买了开发教学视频《微信小程序入门与实战》,149,也还好,不算太贵。累计花了约30h,课程也大概上了近80%,顺便花了6h用gank.io的公开API撸了一个简单的刷刷妹纸图片的小程序(目前并没有上线,因为功能太简单了不想提交上线,后续再完善一部分再提交吧==),接近过年,无心再码点什...

支付宝当面付(条码支付)功能开发

先看下官方提供的接口调用流程:显然,如上所示,涉及三个接口:支付alipay.trade.pay查询alipay.trade/query撤销alipay.trade.cancel接口调用涉及一大堆参数,支付宝倒是也很贴心,直接帮我们做好了相关的SDK(服务端SDK),可以直接调用API,而且对于一些公共参与已经帮我们封装好了,调用时只需要传入业务参数即可。下载好SDK之后,里面的readme也写的很明白,集成支付宝接口需要引入的文件是:alipay-sdk-java*.jarcommons-logging-1.1.1.jar在《服务端SDK》中有调用示例如下://实例化客户端AlipayClientalipayClient=newDefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json",CHARSET,ALIPAY_PUBLIC_KEY,"RSA2");//实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.open.pub...

微信公众号开发 [05] 微信支付功能开发(网页JSAPI调用)

2.2.1组装xml点击支付按钮后,写一个Ajax将前台部分信息发送给后台,然后组装xml,调用统一下单接口。该接口在《微信支付官方文档-统一下单》进行了很详细的解释,我在这里进行部分说明:参数说明   备注appId   开发者应用ID,在“开发-基本配置”查看mch_id微信支付的商户号,在“微信支付-商户信息”查看device_info   终端设备号(门店号或收银设备ID)PC网页或公众号内支付,则传“WEB”body商品或支付的简单描述trade_type可取值JSAPI,NATIVE,APP等,我们这里使用的是JSAPIJSAPI公众号支付;NATIVE原生扫码支付;APPapp支付nonce_str随机字符串参考算法:《微信支付官方文档-安全规范》notify_url通知地址,微信支付成功后,微信服务器会发送信息到该urlout_trade_no商户系统内部订单号,由商户自定义,订单号要保持唯一性total_fee订单总金额,单位:分openid用户标识,用户在该公众号下的唯一身份标...

微信公众开发 [04] 模板消息功能开发

好了,现在我们知道模板消息是官方固定好的格式,我们填充内容。而且对应给了我们模板的ID,那么我们来看看,对于推送模板消息,需要我们提供哪些内容:http请求方式:POSThttps://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN2 1http请求方式:POST2https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKENPOST数据示例如下:{"touser":"OPENID","template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY","url":"http://weixin.qq.com/download","miniprogram":{"appid":"xiaochengxuappid12345","pagepath":"index?foo=bar"},"data":{"first":{"value":"恭喜...

微信公众开发 [03] 结合UEditor实现图文消息群发功能

所谓图文消息,就是我们常在订阅号中收到的如下图所示的消息类型: 从微信开发者文档-消息管理-发送消息-群发接口和原创校验-上传图文消息素材中可以看到,图文消息就是文章的集合,每条图文消息包含的文章不得超过8条。我们从开发文档中上传图文消息素材的POST格式来看,一个文章大概包含的内容有:{"articles":[{"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p","author":"xxx","title":"HappyDay","content_source_url":"www.qq.com","content":"content","digest":"digest","show_cover_pic":1},{"thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p","author":"xxx","title":"HappyDay","content...

微信公众开发 [01] 入门基本流程

先讲一下微信平台消息的基本传递过程,接下来的更多概念和接口用法才更容易理解。我们在使用一些微信公众号的时候,肯定遇到过这种情况,给公众号发送一些消息,它会回复你不同的内容,也就是说,该微信公众号可以识别你的消息类型、内容,然后做出不同的反馈。甚至复杂的,可以模拟出一个自动应答的机器人。(如下图的中国移动为例)那么我们就了解下这个消息发送过去的处理过程是怎样的。借用一下方倍老师博客中的图片和部分叙述:用户在给公众号发送一条消息时,并不是直接到达我们的服务器,而是先到达微信服务器,微信服务器会将用户的消息组装为一些特定格式的xml文件,这个xml文件就包括了收发人、消息类型、发送时间等等,然后再交给我们的服务器。我们的服务器对这种格式的消息进行解析,根据需要进行判断,再把我们想要返回的消息组装成一个符合微信规范的xml文件,发给微信服务器,然后交由它进行解析和回传处理。(其中GET方式请求访问我们的服务器是主要用于微信服务器的校验,POST方式大多是用于交互,即用户发送消息我们设置逻辑进行响应,所以通常请求到我们的服务器以后,要根据不同的请求类型进行判断后,再进行逻辑处理)所以到这里,我们...

Python开发【第十五篇】:Web框架之Tornado

概述Tornado 是 FriendFeed 使用的可扩展的非阻塞式web服务器及其相关工具的开源版本。这个Web框架看起来有些像web.py 或者 Google的webapp,不过为了能有效利用非阻塞式服务器环境,这个Web框架还包含了一些相关的有用工具和优化。Tornado和现在的主流Web服务器框架(包括大多数Python的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。得利于其非阻塞的方式和对 epoll 的运用,Tornado每秒可以处理数以千计的连接,这意味着对于实时Web服务来说,Tornado是一个理想的Web框架。我们开发这个Web服务器的主要目的就是为了处理FriendFeed的实时功能——在FriendFeed的应用里每一个活动用户都会保持着一个服务器连接。(关于如何扩容服务器,以处理数以千计的客户端的连接的问题,请参阅 C10Kproblem。)下载安装:?1234pip3installtornado 源码安装https://pypi.python.org/pac...

C#开发ActiveX插件-aspx中嵌入

刚到新的公司,第一周让我熟悉一下他们用的silverlight和arcgis。这周,也就是昨天分配了我一个小小的任务!哪个项目的不知道,是让我实现一个在aspx中嵌入activeX插件!在网上找了些资料,整理了一下,大概是下面这样:更改“项目属性-应用程序-程序集信息”设置,勾选“使程序集COM可见”:更改“项目属性-生成”设置,勾选“为COM互操作注册 修改AssemblyInfo.cs文件,添加[assembly:AllowPartiallyTrustedCallers()]项(需要引用System.Security名称空间): usingSystem.Runtime.InteropServices;usingSystem.Security;//有关程序集的常规信息通过下列属性集//控制。更改这些属性值可修改//与程序集关联的信息。[assembly:AssemblyTitle("ActivexDemo")][assembly:AssemblyDescription("")][assembly:AssemblyConfiguration("")][assembl...

基于讯飞语音API应用开发之——离线词典构建

  最近实习在做一个跟语音相关的项目,就在度娘上搜索了很多关于语音的API,顺藤摸瓜找到了科大讯飞,虽然度娘自家也有语音识别、语义理解这块,但感觉应该不是很好用,毕竟之前用过百度地图的API,有问题也找不到人帮忙解决(地图开发者群里都是潜水的)...不得不说,科大讯飞在语音这块尤其是中文识别方面做的真心不错,而且Android还支持离线识别。  讯飞官方给的文档内容很详细,在这我就不赘述了。在开发中,由于一些原因需要用到离线识别这块,就学习了一下。讯飞离线识别只支持Android系统,使用时需要安装讯飞语音+,同时还要自己写离现实别的字典(BNF)。关于BNF的文档,我会在后面放出下载连接。在这里先给个简单的BNF样例:1#BNF+IAT1.0utf-8;2!grammarcall;3!slot<list>;4!start<speech>;5<speech>:<list>;6<list>:盲人听书|在线音乐|影音播放|小说;  当要更新BNF时,确切的说应该是更新某个槽(<slot>)时,可以调用SpeechRec...

[php笔记]项目开发五个阶段/雇员管理系统

zend公司,管理PHP版本的升级.功能强大,官方推荐.(开发一个PHP项目)软件开发的五个阶段.1.创建一个项目(工程)2.设置该项目的路径3.创建一个文件test.php***使用ZEND/EPP/Eclipse等IDE的细节***1.将文件的编码设置为UTF-8***快捷键和调试功能***1.提示符助手contentassist(快捷键alt+/)2.复制当前行(CTRL+ALT+向下)3.删除当前行(CTRL+D)4.块注释S+C+/,S+C+5.调试PHP代码    调试        一行一行(逐行)执行代码,看到内存中数据的变化.过程称为~    断点            f5跳入    f6跳过    f7跳出(函...

linux搭建C开发环境

目前决大多 数的Linux用户对Linux的了解还处于比较低级的层次,他们可能会几条命令、会配几种服务、会用rpm来安装软件、会操作KDE/Gnome界机等等,但是当他们遇到一些需要编译安装的软件时,面对一些简单的出错信息,他们就手足无措了。要想真正跨跃这些初级层次,你就不可能不去了解一些底层的东西,比如本文要讲到的Linux下的C开发环境以及本文之外的其它操作系统知识。     Linux和C天生有不解之源,大家可能知道Linux的操作系统内核就主要是用C写的,另外Linux下的很多软件也是用C写的,特别是一些著名的服务软件,比如MySQL、Apache等。初学者可能在编译MySQL这样的软件时,遇到过各式各样的错误,其实只要你初步了解了Linux的C开发环境,你就能自选解决安装过程中的一些错误。     Linux的C开发环境与Windows的有所不同,在Linux下,一个完整的C开发环境包括以下三个组成:     1、函数库: glibc    &nb...
代码星球 代码星球·2021-02-21

RESTful架构3--开发实战

转自:REST服务开发实战   如果要说什么是REST的话,那最好先从Web(万维网)说起。  什么是Web呢?读者可以查看维基百科的词条(http://zh.wikipedia.org/zh-cn/Web),具体的我就不多说了。总之,Web是我们在互联网上最常用的服务,甚至在某些人的心中,互联网就是Web。当然,Web只是互联网的一部分而已,只是大家用的最多而已,我们访问的所有网站都是基于Web。  那么,Web和REST之间究竟有什么关系呢?我们接下来将聊聊组成Web的几大基础技术,URI(统一资源标识符,用来标识资源)、HTTP(超文本传输/转移协议,用来操作资源)、Hypertext(超文本,用来描述资源的内容与状态,我们可以用HTML、XML、JSON或者自定义格式的文本来描述任何一个资源)。  那我们再来看看什么是REST呢?其实REST并不是一种新兴的技术语言,也不是什么新的技术框架。准确来说说REST只是一种概念、风格或者约束,是回归HTTP本身的建议。  REST是由RoyThomasFieding在他的博士论文《ArchitecturalStylesand...
代码星球 代码星球·2021-02-21

小程序开发 组件定义(封装)、组件调用、父子组件方法调用、父子组件传值通讯

在小程序开发中,为了提高代码效率,和代码使用率,我们也用到了组件封装,今天我介绍下如何在小程序中封装一个头部公用组件首先,所有父组件(调用页面)的json文件都要引用子组件:index.json{"usingComponents":{"header":"../../component/header/header",}}  一,组件定义(封装)子组件:header.wxml<viewname='header'class="header"id='header'><text>{{userInfo.nickName}}</text><viewclass='icon-box-r'><imageclass='icon-img'src='{{userInfo.avatarUrl}}'></image></view></view>子组件:header.js//component/header/header.jsComponent({/***组件的属性列表*/properties:{},/...

总结下web开发中基础性的常识

一,HTML/51,浏览器渲染过程主流浏览器渲染过程叫法有区别,但是主要流程还是相同的。Gecko将视觉格式化元素组成的树称为“框架树”。每个元素都是一个框架。WebKit使用的术语是“呈现树”,它由“呈现对象”组成。对于元素的放置,WebKit使用的术语是“布局”,而Gecko称之为“重排”。对于连接DOM节点和可视化信息从而创建呈现树的过程,WebKit使用的术语是“附加”。所以可以分析出基本过程:HTML解析出DOMTreeCSS解析出StyleRules将二者关联生成RenderTreeLayout根据RenderTree计算每个节点的信息Painting根据计算好的信息绘制整个页面  2,什么是websocket?WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有 1.1 和 1.0 之说,也就是所谓的 keep-alive ,把多个HTTP请求合并为一个,但是 Websocke...

使用vue-element-admin框架开发时遇到的跨域问题

之前使用js和jquery开发时也碰到过接口请求时的跨域问题,但是在使用vue-element-admin开发也碰到这个问题,而且不能使用之前的方法解决,查过不少资料,找到一个很好的方法解决了这个问题首先,解决的思路是:1,原因,造成跨域的原因是因为我们设置的接口和请求的接口不同造成,而且一般做前后端分享,后端接口和前端文件不在同一个工程,也是造成跨域的原因2,解决思路在以前js和jquery时候,都是设置josnp或是后端修改数据接口类型,解决起来非常麻烦在使用vue后,只要使用代理接口就可以解决3,开发环境所用工具a,webpackb,vuec,vue-element-admind,phpe,http-proxy-middleware[解决跨域的webpack插件]4,解决步骤一,安装 http-proxy-middleware插件1$npminstall--save-devhttp-proxy-middleware二,配置dev.evn.js文件 三,配置api/index.js文件 dev:{//PathsassetsSubDirectory:'s...
首页上一页...910111213...下一页尾页