微信开发

支付开发填坑记之微信支付

二次信任 提交于 2020-03-21 21:56:38
微信支付,支持的支付方式比较多:有扫码支付,刷卡支付,APP支付和公众号支付。其中,APP和网站上最常用的就是APP支付和公众号支付。前者集成在APP中,后者主要是为微信用户提供了另一种支付方式(需要在微信的内置浏览器中打开页面,再调起微信支付)。 微信支付,支持的支付方式比较多:有扫码支付,刷卡支付,APP支付和公众号支付。其中,APP和网站上最常用的就是APP支付和公众号支付。前者集成在APP中,后者主要是为微信用户提供了另一种支付方式(需要在微信的内置浏览器中打开页面,再调起微信支付)。 同样的,微信的APP支付和支付宝的APP支付也是很简单: APP支付 商户系统和微信支付系统主要交互说明: 步骤1:用户在商户APP中选择商品,提交订单,选择微信支付。 步骤2:商户后台收到用户支付单,调用微信 支付统一 下单接口。参见 【统一下单API】 。 步骤3:统一下单接口返回正常的 prepay_id ,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为 appId , partnerId , prepayId , nonceStr , timeStamp , package 。 注意:package的值格式为Sign=WXPay 步骤4:商户APP调起微信支付。 步骤5:商户后台接收支付通知。 步骤6:商户后台查询支付结果。 这里主要的还是后台干活(获取

企业微信应用的功能开发

时光怂恿深爱的人放手 提交于 2020-03-21 09:02:41
1.应用场景: 企业微信中开发一个公共入口,用来外部各个子系统中的公用功能的整合; 2.业务分析: 集团公司为了适应市场变化,拆分为四个子公司;现有集团资产管理系统,上层的决策是把系统代码直接复制为四套,分别部署在四个服务器中独立域名,独立数据库(已实施); 为我们后面维护造成了很大的问题;五月份通知全体公司要进行资产年度盘点,指定必须用移动端进行盘点; 3.架构方案: 由于公司已有自己的企业微信平台,所以采用在企业微信工作台,新建一个盘点应用入口;开发一个H5站点作为UI(可以使用扫一扫进行扫码录入),在四套系统里开发相同的盘点接口供H5调用; 4.开发: 主要分为 1.前端H5 界面开发; 2 .调用企业微信API; 3.调用四个系统的接口;这里主要讲下企业微信API的调用 首先需要管理员身份进入公司的企业微信后台 https://work.weixin.qq.com/,创建好应用,并配置我们应用的 回调站点,必须是有效域名,这里需要注意的是需要把获取的 密匙txt文件WW_verify_wApslD6X0ysCCA8G.txt 放入服务器根目录下进行验证服务器 这里只说一下后台获取企业微信的配置 后台使用的是MVC Controller 1 #region Get Post Http 2 /// <summary> 3 /// 创建GET方式的HTTP请求 4 /// <

微信小程序开发——连续快速点击按钮调用小程序api返回后仍然自动重新调用的异常处理

北慕城南 提交于 2020-03-14 17:51:48
前言:   小程序开发中诸如获取用户手机号码、调起微信支付、领取卡券等api都是会有一定的延迟的。也就是说通过点击按钮调用这些api的时候,从点击按钮调用api,到支付页面或者领取卡券界面展示出来是需要一定时间的,连续点击按钮,还是有可能会重复调用的。   虽然这种情况有点极端,正常用户是不会这么连续快速的点击按钮的,但是也不能排除有用户手抖,连续点了两下。如果重复调用的话,不仅体验不好,单击事件中涉及到后端接口操作的也可能引起其他异常。所以这个问题还是要处理下的。   刚开始想到的是使用loading开启模板来防止点击穿透,结果发现loading从调用到蒙板起作用也是需要一定时间的,还是解决不了这个问题(自定义loading加蒙板防点击穿透应该可以的)。后边就想到了采用给按钮添加启用/禁用状态来控制按钮点击的频率——点击按钮,按钮状态设置为禁用,一定时间之后,启用按钮可用状态。经多次验证,此法可行。 处理方法: 1. 设置按钮可用状态: Page({ data: { disabled: false //购买按钮是否可用,按钮默认可用,点击一次后置为不可用,一定时间之后恢复可用 }, /** * 购买按钮点击防重:禁用/启用 */ buyBtnDisable: function() { this.setData({ disabled: true }) var self = this

【很快】:微信“小程序”,链接“大未来”

依然范特西╮ 提交于 2020-03-13 09:41:52
【很快】:微信“小程序”,链接“大未来” 上个月初,微信公众平台正式开放了“小程序”的公测,随之引发的是几乎所有关注这一领域的码农们的一次集体高潮。就在微信小程序开放公测次日(11月4日),其百度搜索指数便达到了近2万的峰值。这也是自年初微信公开课PRO版“应用号”概念推出,9月22日正式改名“小程序”之后所达到的又一个高峰。 简单来说,“小程序”可以理解为微信内部可以实现与各类APP应用相同功能的超级网页。对已经习惯了支付、出行、餐饮等各方面都用手机操作的今天,通过“小程序”可以将手机在各个领域上的功能进一步强化,同时用户不需要装载那些使用频率并不高的APP,真正将手机内存释放出来。 虽然“小程序”的出现,将会进一步加大用户对于“微信”这个“超级APP”的依赖,造成一家独大的情况,但通过“小程序”便捷的入口,用户只需扫码即可实现以往APP才能体验到的功能,为用户尤其是线下的酒店订房、餐饮类、医药排号、交易等场景带来更多的便利。 微信小程序将引发的四大效应 有了微信这个超级流量入口的支撑,对很多开发者来说,小程序是一个不容错过的机遇。根据微信开发者平台【很快】的预测,小程序适合功能单一、轻量级的服务,将对服务号形成一定程度的冲击。同时,相比传统开发人员的素质、技能需求,小程序的入门门槛更低,因此,参与者处于井喷状态,其竞争激烈程度将大于iOS和Android。 但从机遇的角度考虑

nodejs vue-cli 微信公众号开发(一) 申请域名搭建服务器

浪尽此生 提交于 2020-03-12 22:02:00
一、搭建本地服务器 1、首先保存本地的80端口被node监听,利用内网穿透工具把80端口映射出去。(ngrok工具可以穿透内网使本地ip作为外网使用) 2、打开https://natapp.cn/tunnel/edit/48496,根据自己的系统下载对应的版本工具,解压后打开cmd, 切换到解压目录,如图 3、详细操作过程 参照 NATAPP1分钟快速新手图文教程 https://natapp.cn/article/natapp_newbie 这时候,工具就把80端口映射出去了,而且还为你生成了一个域名,这个域名是可以被外网访问的。这样你的电脑目前就是一台小服务器了,有了这个域名和服务器,我们就可以来布置微信的测试环境了。 来源: https://www.cnblogs.com/wangRong-smile/p/10996643.html

微信开发高级群发接口

徘徊边缘 提交于 2020-03-12 07:54:06
在 公众 平台 网站上,为订阅号提供了每天一条的群发权限,为服务号提供每月(自然月)4条的群发权限。而对于某些具备开发能力的 公众 号运营者,可以通过高级群发接口,实现更灵活的群发能力。 请注意: 1、该接口暂时仅提供给已微信认证的服务号 2、虽然开发者使用高级群发接口的每日调用限制为100次,但是用户每月只能接收4条,请小心测试 3、无论在公众平台网站上,还是使用接口群发,用户每月只能接收4条群发消息,多于4条的群发将对该用户发送失败。 上传图文消息素材 接口调用请求说明 http请求方式: POST https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=ACCESS_TOKEN POST数据说明 POST数据示例如下: { "articles": [ { "thumb_media_id":"qI6_Ze_6PtV7svjolgs-rN6stStuHIjs9_DidOHaj0Q-mwvBelOXCFZiq2OsIU-p", "author":"xxx", "title":"Happy Day", "content_source_url":"www.qq.com", "content":"content", "digest":"digest" }, { "thumb_media_id":"qI6_Ze

微信小程序从零开始开发步骤(四)自定义分享的功能

断了今生、忘了曾经 提交于 2020-03-12 03:07:20
上一章节,实现了小程序的底部导航的功能,这一节开始实现一些简单的功能。本章节介绍的是小程序的自定义分享的功能。 可以分享小程序的任何一个页面给好友或群聊。注意是分享给好友或群聊,并没有分享到朋友圈。一方面微信在尝试流量分发方式,但同时又不愿意开放最大的流量入口。 开发文档: https://mp.weixin.qq.com/debug/wxadoc/dev/api/share.html?t=20161221 实现步骤很简单 在index/index.js里面添加了一段自定义分享的代码如下, path: '/page/index?id=123',实现了index首页页面的分享功能 示例代码: Page({ onShareAppMessage: function () { return { title: '自定义分享标题', desc: '自定义分享描述', path: '/page/index?id=123' } } }) 解释一下意思: Page()中加上如下代码后在右上角意思 title:分享的标题. desc:分享一段描述. path:这个参数以前在微信中的分享一般都是url.这里pages/index?id=123是在首页页面设置分享的意思。 下一章:微信小程序从零开始开发步骤(五)简单的轮播图 原理: 在 Page 中定义 onShareAppMessage 函数

基于微信小程序平台的业务系统最小功能集开发(一)——开发环境搭建

对着背影说爱祢 提交于 2020-03-10 06:00:47
微信小程序有用完即丢的特点,从APP一级避免了平台差异,再加上微信的在线用户量,非常适合作为简单业务系统的平台。 应用的需求来自于学校日常的设备维修,业务部门缺乏统一的工单系统,网上开源的工单系统,功能较为庞大。对比阅读源码+删减无用功能+检查框架的时间,结合实际业务需求,自己开发较为节省时间。 最终开发完成了集身份验证、权限管理,工单管理、会场功能预定为一体的最简单的微信小程序,现将开发过程记录如下。 一、开发准备 开发电脑一台(windows 10) VMware软件 VSCode编辑器 微信开发者工具 电脑配置以可以运行上述软件为好,无具体要求,自己用的顺手即可。 VMware虚拟机软件主要用来跑PHP+MySql,用虚拟机部署就可以免去单独部署开发服务器的麻烦,节省设备资源。 VSCode编辑器,是Visual Studio Code,微软大名鼎鼎的革命性产品,选用它不是为了追赶潮流,只是因为跟微软系统结合的较好,安装运行较为顺畅。开发过程中仅仅用到了代码编辑功能,未用到丰富的插件,所以完全可以根据喜好选择熟悉的代码编辑器,本例中主要用来编写PHP代码。 微信开发者工具,微信为开发者推荐的集成开发环境,集成度较好,使用较为方便。(也没有其他选择) 上述软件安装无特殊要求,无脑下一步即可,安装完成后开始环境配置。 二、开发环境搭建 前端,使用微信开发者工具开发小程序 后端

微信公众账号开发入门准备

一笑奈何 提交于 2020-03-09 14:27:30
准备工具: 1.注册一个微信公众号(可以是微信公众测试号) 2.对外提供一个域名,并且绑定至80端口,因为微信公众号接入只支持80端口 3.使用刚才申请的微信公众测试号和申请的域名进行开发 注:接下来我们按照准备中的三个步骤进行开发 一:注册微信公众测试号 1.打开注册网址( http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login) 点击图中登录按钮,使用手机微信端扫描弹出的二维码,并且点击 确认登录 按钮,此时就注册了一个微信公众测试号 二:对外提供一个绑定80端口的域名 注:因为我们不可能立即去申请一个域名,所以下面采用一个代理软件(ngrok); 1.下载 ngrok ( https://ngrok.com/download ),这是选择windows版本 2.将下载下来的文件进行解压,解压后会得到一个ngrok.exe的文件 3.在dos下进入你解压的目录,然后执行ngrok http 80命令,80表示映射到你本地哪个端口,如果你使用的是tomcat,使用默认端口则可以执行 ngrok http 8080;执行完之后会得到如下界面,标识配置成功: 上图中我们主要关注一项:Forwarding,这个就是我们对外提供的访问域名,分别为http和https;通过这个域名我们就可以访问到本机

0038 微信公众平台开发 (07 带参二维码)

别说谁变了你拦得住时间么 提交于 2020-03-09 09:54:05
  带参二维码是微信公众号用来管理用户的重要手段。   如果根据客户ID生成带参二维码,那么,当另一个客户扫描这个二维码时,公众号就能够接收到这个参数,并把这个参数设置为客户的上线。以此类推,可以把客户来源全部理清楚,有很大的商业价值。   如果根据组织ID生成带参二维码,就可以自动知道客户来源于什么组织。   总之,参带二维码的关键在于场景值,我们可以设置业务需要的任何场景值,通过用户扫码,来获取这个场景值。 1 生成带参二维码   在Applications/WeChat/views下创建文件,名为:WechatQrcode.py文件 from rest_framework.views import APIView from rest_framework.response import Response from .Utils import get_WeChatClient from rest_framework import status class GetQrcode(APIView): @classmethod def get(cls, request): # 此处可以查询用户ID或用户所在的组织ID,并根据这个ID来生成scene_id wechat_client = get_WeChatClient() # 生成ticket res = wechat_client