作者文章

fwq

FWQ
小程序
详解iOS微信支付开发案例代码
这篇文章主要为大家详细介绍了iOS开发案例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 微信支付有很多坑的,官方提供的文档一点都不全面,而且demo也比较”羞涩”难懂。很多注意的细节都没有体现出来,走了很多弯路。于是,系统的开发流程如下。(完整的demo附在博客最后面)这里面包括微信支付开发和支付宝开发调用客户端的兼容处理。(两次签名放在移动端,博客中没提到没安装微信客户端的情况,也很简单[WXApi sendReq:request]调用这个方法的返回值为0即可判断。) 一、环境配置 1、首先是https协议访问,在plist设置白名单 2、当你工程中有微信分享、收藏、支付、登录等,需要在“Info.plist”里增加如下代码(LSApplicationQueriesSchemes) 3、解决bitcode编译不过问题 4、设置URL types 5、导入SDK(可从微信官方的demo移植过来) 6、导入系统依赖库 7、特别要注意的是 微信支付是以分为单位的,也就是说,如果你支付金额是保留两位小数,支付的金额必须*100后再传给微信支付平台,其他的依次类推。 二、代码开发 1、在程序入口(即applegate.m)需要进行的操作 2、增加如下代理方法,否则不回调微信客服端(也是在delegate.m文件中) 3、微信支付成功的回调函数 这个有必要说明下,官方文档是这样说明的:不能以客服端支付成功的结果就直接当做是订单支付成功的结果,要以服务器返回的订单状态为准,也就是说,客服端支付成功后,微信支付平台会给服务器发送支付成功的消息,后台修改订单状态,重新返回给客户端。简单就是,支付成功要发送给特定的视图控制器(带有微信支付功能的视图控制器)发送通知,让这个特定的视图控制去请求服务器订单的住状态。这个回调函数必须写在delegate.m中!!! 4、特定视图控制器的代码(带有微信支付功能的视图控制器) 4.1 提交预支付订单获得预订单id(这个过程必须经过两次签名,分别是不带参数签名和携带参数签名,当然,这些方法都已经在payRequsestHandler类封装好了,你只需要传参数调用方法就可以了)这个也是点击支付按钮的动作方法 4.2得到预支付订单,那么就可以调微信支付的客服端(4.2和4.1代码是连续的) 附带sign参数签名的独立封装的两个方法,没用payRequsestHandler封装的方法,自己写的,因为用了出现问题(问题截图如下),先代码截图,后面再提供可直接复制黏贴的代码块问题截图:(相信很多人遇到过,100%是sign签名的问题)   方法一:   方法二: 4.3…
2024-11-25 阅读全文 →
FWQ
小程序
微信公众平台开发保证access_token长期有效的方法
为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台开放了许多接口,包括自定义菜单接口、客服接口、获取用户信息接口、用户分组接口、群发接口等,开发者在调用这些接口时,都需要传入一个相同的参数access_token,它是公众账号的全局唯一票据,它是接口访问凭证。 access_token的有效期是7200秒(两小时),在有效期内,可以一直使用,只有当access_token过期时,才需要再次调用接口获取access_token。在理想情况下,一个7×24小时运行的系统,每天只需要获取12次access_token,即每2小时获取一次。如果在有效期内,再次获取access_token,那么上一次获取的access_token将失效。 目前,获取access_token接口的调用频率限制为2000次/天,如果每次发送客服消息、获取用户信息、群发消息之前都要先调用获取access_token接口得到接口访问凭证,这显然是不合理的,一方面会更耗时(多了一次接口调用操作),另一方面2000次/天的调用限制恐怕也不够用。因此,在实际应用中,我们需要将获取到的access_token存储起来,然后定期调用access_token接口更新它,以保证随时取出的access_token都是有效的。 下面将为大家介绍如何定时获取并存储access_token。请注意:这不是一篇讲解如何调用接口获取access_token的文章,关于access_token的获取,请参考文章 《微信公众帐号开发教程第14篇-自定义菜单的创建及菜单事件响应》。 在动手前先来简单分析一下,我们要解决的无非是如下两个问题: 1.如何定时获取access_token? 在Java中,如果要定时执行某项任务,需要用到java.util.Timer类,对于喜欢使用框架的朋友,可以采用 开源的任务调度框架quartz,Spring框架也支持quartz。除此这外,还有一种方法就是启动一个线程,在线程的run()方法中写一个死循环,然后使用Thread.sleep()来保证线程定时执行某项任务。 2.将access_token保存在哪? 对于access_token的存储,可以考虑存储在文件、数据库或内存中。具体采用哪种存储方式,需要根据项目实际情况而定。如果只有一台服务器,直接将access_token存储在内存中是最简便有效的方式。 在本文中,笔者将演示的定期获取并存储access_token的流程为:Web服务器启动时就加载一个Servlet,在Servlet的init()方法中启动一个线程,在线程的run()方法中通过死循环+Thread.sleep()的方式定期获取access_token,然后将获取到的access_token保存在public static修饰的变量中。 在工程中创建一个InitServlet类,该类的代码如下: package org.liufeng.weixin.servlet;          import javax.servlet.ServletException;     import javax.servlet.http.HttpServlet;     import org.liufeng.weixin.thread.TokenThread;     import org.liufeng.weixin.util.WeixinUtil;     import org.slf4j.Logger;     import org.slf4j.LoggerFactory;          /**    * 初始化servlet    *     * @author liuyq    * @date 2013-05-02    */     public class InitServlet extends HttpServlet {    …
2024-11-25 阅读全文 →
FWQ
小程序
关于关注事件的10篇文章推荐
在上一篇的博文中讲到,微信的消息可以大体分为两种类型,一种是包括:文本,语音,图片等的普通消息,另一种就是本篇要将的事件类型。包括:关注/取消关注事件,扫描带参数二维码事件,上报地理位置事件,自定义菜单相关事件等。本篇一一进行讲解。上一篇也提到了,微信服务器在5秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。这样的话,问题就来了。有这样一个场景:当用户关注微信账号时,获取当前用户信息,然后将信息写到数据库中。类似于pc端网站的注册。可能由于这个关注事件中,我们需要处理的业务逻辑比较复杂。如送积分啊,写用户日志啊,分配用户组啊。等等……一系列的逻辑需要执行,或者网络环境比较复杂,无法保证5秒内响应当前用户的操作,那如果当操作尚未完成,微信服务器又给我们的服务器推送了一条相同的关注事件,我们将再次执行我们的那些逻辑,这样就有可能导致数据库中出现重复的数据(有的童鞋就会说了,我在插入数 1. 简介:在上一篇的博文中讲到,微信的消息可以大体分为两种类型,一种是包括:文本,语音,图片等的普通消息,另一种就是本篇要将的事件类型。包括:关注/取消关注事件,扫描带参数二维码事件,上报地理位置事件,自定义菜单相关事件等。本篇一一进行讲解。上一篇也提到了,微信服务器在5秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。这样的话,问题就来了。有这样一个场景:当用户关注微信账号时,获取当前用户信息,然… 2. 简介:在上一篇的博文中讲到,微信的消息可以大体分为两种类型,一种是包括:文本,语音,图片等的普通消息,另一种就是本篇要将的事件类型。包括:关注/取消关注事件,扫描带参数二维码事件,上报地理位置事件,自定义菜单相关事件等。本篇一一进行讲解。 3. 简介:如果用户曾经在该公众号有支付行为,关注的时候EventKey中将包含上次交易订单号,如  last_trade_no_4002752001201704258347703919 4. 简介:在老的关注事件中,用户关注微信公众平台账号后,系统会帮用户发送一条Hello2BizUser的文本给公众账号,公众账号后台开发模式下通过判断Hello2BizUser这个词来实现发送欢迎词。 5. 简介:上篇已经成功响应了关注事件,也实现了文本消息的发送,这篇开始图文消息处理, 微信中最常用的消息类型就是图文消息了,因为它图文并茂,最能表达信息。 图文消息在微信中的接口定义如下: 6. 简介:上一篇已经把所有消息封装且都各自有方法处理了,这篇从使用第一步——关注开始,  关注之后进行消息记录,同时回复文本消息给用户,关注方法:DoSub,另外新用户扫描带参数的二维码关注方法:DoCodeNotSub。 7. 简介:微信公众平台开发关注及取消关注事件的方法,公众平台。微信公众平台开发关注及取消关注事件的方法,公众平台 本文实例讲述了微信公众平台开发关注及取消关注事件的方法。分享给大家供大家 8. 简介:微信公众平台开发关注及取消关注事件的方法,公众平台。微信公众平台开发关注及取消关注事件的方法,公众平台 本文实例讲述了微信公众平台开发关注及取消关注事件的方法。分享给大家供大家 9. 简介:用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL。方便开发者给用户下发欢迎消息或者做帐号的解绑。下面是一个微信公众平台关注和取消关注的实例 10. 简介:这篇文章主要介绍了微信公众平台开发关注及取消关注事件的方法,较为详细的分析了微信公众平台设置关注的技巧,并附带了相关参数的说明,具有一定的参考借鉴价值,需 【相关问答推荐】:…
2024-11-25 阅读全文 →
FWQ
小程序
微信小程序开发中怎样实现数据交互
function sendRequest(path, data, callback) {     wx.request({         url: path,          data: data,         header: {            'content-type': 'application/json'         },         method: "POST",         success: callback,         fail:(res)=>{           console.log(res)         }     }) }  把微信请求封装起来 还有项目里面要用到的接口如下 登录后复制 把接口暴露出去在其他页面调用 相信看了本文案例你已经掌握了方法,更多精彩请关注米云其它相关文章! 推荐阅读: 以上就是微信小程序开发中怎样实现数据交互的详细内容,更多请关注米云其它相关文章!
2024-11-25 阅读全文 →
FWQ
CMS教程
discuz如何去除forum.php
discuz去除forum.php的方法:首先在后台设置域名;然后找到“discuz.htm”并修改内容为“”即可。 推荐:《》 去掉discuz论坛中forum.php的方法 首先声明:这是一篇去除discuz论坛中forum.php尾巴最全的方法,之前也看到过类似的文章,但按照步骤操作后,大家会发现还有很多地方没有去掉forum.php尾巴。这样不利于网站seo。 今天,为大家整理了最完美的去除forum.php尾巴的方法。 立即学习“”; 在操作之前,我们先来看一下discuz论坛含有forum.php尾巴的地方: (1)主导航中的论坛按钮 (2)论坛首页的面包屑导航位置 (3)分区版块的面包屑导航位置 (4)主题列表页的面包屑导航位置 (5)主题内容页的面包屑导航位置 (6)发新主题页面包屑导航位置 (7)主题列表页的2个返回按钮 (8)archiver/的首页 (9)输入域名默认跳转到带有www.域名.com/forum.php 既然知道了,discuz论坛都是那些地方含有forum.php,接下来就按照以下步骤来逐一去除 (1)在后台设置域名 这步设置之后,主导航中的论坛按钮就去掉了forum.php尾巴 (2)在templatedefault orum中找到discuz.htm,大约在第19行的位置, 把 这样,首页和分区版块的面包屑导航中的forum.php就去掉了。 (3)在/source/module/forum/中 forum_forumdisplay.php,第65、67、74、76行:把 forum_viewthread.php,第107行:把 forum_post.php,第111行:把 forum_misc.php,第394、398行:把…
2024-11-25 阅读全文 →
FWQ
CMS教程
wordpress文章主题缩略图在哪改?
wordpress文章主题缩略图修改方法:登录 wordpress 仪表盘。导航到文章页面并选择要修改的文章。点击“特色图片”部分并选择图片来源。裁剪图片(可选)。保存更改。 WordPress 文章主题缩略图修改指南 WordPress文章主题缩略图是文章在列表或首页中的预览图片。修改文章主题缩略图可提升视觉吸引力,提高文章的可读性。本文将分步指导您修改 WordPress 文章主题缩略图。 如何修改 WordPress 文章主题缩略图 登录 WordPress 仪表盘:使用您的用户名和密码登录 WordPress。 导航到文章页面:在仪表盘左侧菜单中,选择“文章”选项卡。 选择要修改的文章:在文章列表中,找到要修改的文章标题。 点击“特色图片”:在文章编辑器右侧,找到“特色图片”部分,并点击“设置特色图片”。 上传或选择图片:使用媒体库上传新图片或选择现有图片作为特色图片。 裁剪图片(可选):选择图片后,您可以使用裁剪工具调整图片大小和位置。 保存更改:完成后,点击“设置特色图片”按钮以保存更改。 提示 推荐的缩略图尺寸为 1200 x 630 像素。 选择与文章内容相关且视觉上吸引人的图片。…
2024-11-25 阅读全文 →
FWQ
CMS教程
帝国cms创建站群的方法有哪些
帝国 cms 站群构建方法有以下五种:直接复制法:复制文件和数据库到新服务器,修改配置文件和域名配置。远程导入数据库法:安装帝国 cms,修改配置文件,导出旧数据库并导入新服务器,创建相同数据表结构。模板整合法:安装帝国 cms,修改配置文件,复制模板和数据到新服务器,整合模板和数据。插件分离法:安装帝国 cms,修改配置文件,删除不必要的插件,在新服务器安装必要插件。注意:使用不同 ip 地址和域名,配置不同站点名称,定期更新软件和插件,备份数据。 帝国 CMS 站群构建方法 直接复制法 直接复制帝国 CMS 服务器上的所有文件和数据库到新服务器。 修改新服务器上的配置文件和域名配置。 确保新旧服务器 IP 地址不同。 远程导入数据库法 在新服务器上安装帝国 CMS。 修改配置文件和域名配置。 从旧服务器导出数据库并导入到新服务器。 在新服务器上创建相同的数据表结构。 模板整合法 在新服务器上安装帝国 CMS。…
2024-11-25 阅读全文 →
FWQ
小程序
微信小程序0.11.122100 版本更新详情介绍
0.11.122100 更新概述 新增 4 个新 api, 2个新组件 拓展了 10 个组件属性,新增 6 个组件事件 修复数十个 API 以及组件 bug,优化部分交互体验 开发者工具增加新 API 及组件的调试支持 开发者工具增加微信支付的调试支持 详细更新日志如下: 基础库更新 A 新增 API wx.switchTab 详情 A…
2024-11-25 阅读全文 →
FWQ
小程序
关于wxss的10篇文章推荐
编辑器我直接用 vscode(其它编辑器同理,预览还是用的微信开发工具),语法高亮将 wxml 设置成 html, wxss 设置成 css”files.associations”: {   “*.wxss”: “css”,   “*.wxml”: “html” }也可以安装小程序相关插件开始写代码首先需要完整看完微信小程序文档(框架,组件和 API),方便后面用到时查找。view 组件对应 html 里的 ptext 对应 spanwxss 里选择器只支持 element, #id, .className, ::after, ::before公用组件项目目录里新建 components ,按类似 pages 目录结…
2024-11-25 阅读全文 →
FWQ
小程序
微信小程序人为的线上导流限制转为线下连接
  微信小程序无法分享到朋友圈,甚至无法通过长按二维码进入,也就是说,即使你在一个网页或一篇订阅号的文章里放上小程序的二维码,用户还是无法长按打开小程序。用户只能通过:线下扫码、 搜索、朋友分享来打开小程序。微信人为地限制了小程序的线上导流,通过主动搜索进入,量显然不会特别大,朋友之间的分享,扩散的速度也有限,可以说,微信在逼迫开发者尝试线下的导流渠道。这与微信想通过二维码连接现实世界的战略是具有一致性的。  为什么是线下?如果前面的论述是正确的,那么,小程序的出现,要解决的就不是 html5 的体验问题,没错,它是提高了网页应用的体验,但更多地,它是要解决商业问题。过去 1 年,我不少创业圈的朋友都感叹,五六年前,做一个纯线上的产品,可能能养活一家公司甚至上市,但如今,开发一个纯在线的产品,比如社区、比如工具、比如内容,已经没有多少生存空间了。   app 的世界已经趋于饱和,我们几乎可以在 app store 找到各种各样满足不同需求的 app,每个 app 都在互相竞争用户的时间,线上的竞争如此激烈,一个新网站或新 app,可能一年只能获得一个用户 10 秒的使用时间。   面对这样的现状,作为一个创业者,如何才能获得更多的用户时间?   设想这样一个图景,你的创业项目是一本书,你最大的期望是希望用户把书读完。然而,用户在阅读时,可能一边还在看微信,一边在看综艺节目,一边还在吃着薯片,可能一个微信通知,就让用户离开了阅读状态,「专注」地去回复微信,你的用户时间被微信「抢走」了。   那么,如果你有权力,可以把用户都关在一个密闭的小房间里,并且能取走他们身边所有电子设备和零食,只给他们一本书,他们可能一两天就能把一本书看完。在这个小房间里,用户的时间都是你的。   又或者,你的书有足够大的吸引力,能持续占有用户的关注度,用户也可能很快地把书读完。   再或者,你能证明,读完你的书,用户能马上走上通往财务自由之路,用户也可能很快把书看完。   在这个图景里,书是你的产品,小房间是场景,吸引力就是你提供的精细服务。   在线上,我们已经很难把用户装进一个「小房间」里,让它只能看书,因为面对屏幕时,用户有太多选择。   但在线下,用户的时间是可以被某个线下场景独占的,比如等公交时,被公交站独占,吃饭时,被餐馆独占,那么,如果在这些用户时间被独占的场景,提供最适合这个场景的服务,是否更容易让用户从微信、从手游中离开,去使用这个服务? 也就是说,与线下的场景分享它所占有的用户时间是有可能的。 就像张小龙在演讲中提到的,如果你去到长途客运站,刚好你看到有个二维码可以扫码购买车票,显然在这种场景下,你扫码的可能性会比在线上时高,这样,就相当于你原本被客运站独占了时间,这个购票产品,在这个场景里,与客运站分享了你的时间。 这样一种场景化的推广方式,是否比在线上投放一个广告更容易获得用户?实际上,线上推广的成本已经奇高无比,而且往往很多推广带来的都只是一次性的用户,不少创业者已经在思考如何通过线下场景化的方式更低成本地获客。…
2024-11-25 阅读全文 →