因ASP程序开发有很多优点,早年间ASP风靡全球,因此如今还在继续运营的ASP开发的项目仍在运行着,但是随着社交网络不断发达,特别是微信支付、微信通讯、小程序等的出现,导致很多ASP项目对接起来就比较尴尬。且微信没有针对ASP项目开发的详细说明,这个只能靠技术员精湛的技术、丰富的技术经验去完成对接了。但是还有很多正在接手ASP老项目的需要去对接就比较麻烦。

今天我专门抽时间将ASP与微信服务号进行二次开发的一些常见应用,封装成了DLL组建,大家只需要熟悉这个组建的一些基本接口信息,即可很轻松搞定ASP老项目与微信服务号的完美对接,且最简单的方式。

组建名:WeixinDLL

此组建提供了2个类:(今天先介绍类的基本信息,后面一个函数配一个案例去进行介绍)

一、与微信通信的类:WeixinClass

二、微信V3支付MD5加密类:Md5Class

WeixinClass实现的常用功能:

1、微信服务号客户登陆,且获取客户授权的用户基本信息

2、判断客户是否取消关注微信公众号

3、微信分享(分享到微信好友、微信朋友圈、QQ好友、QQ朋友圈等)

4、访问客户的精准定位(正/逆地理编码获取详细的地址,精确到街道门牌号)

5、自动发送微信模板消息给客户

6、自动发送微信图文消息给客户

7、自动发送微信纯文本信息给客户(类似微信聊天信息)

8、微信在线支付(V3支付)

WeixinClass提供的函数

1、XMLRequest(ByVal prepay_id_url, ByVal xmlBody)

prepay_id_url:微信服务器认证prepay_id的url地址

xmlBody:提交到微信服务器的xml格式内容

这个函数主要是为了获取prepay_id这种XML请求,需要使用证书认证的请求。得到的是一串与微信服务器进行了数字证书认证且加密的字符串,方便发起JSAPI支付功能。

2、ToUnixTime(ByVal strTime)

这个主要是为了普通日期转换成时间戳

3、MakeRanNum(ByVal Length)

返回纯数字组合的随机数,长度为length,可以任意设置

4、MakeRanNumChar(ByVal Length)

返回数字、大写小写混合字符串,长度为length,可以任意设置

5、parseJSON(ByVal str)

将接受到的JavaScript的Json格式内容,通过parseJSON在ASP代码内也可以类似JS进行对象模式调用。

6、file_get_contents(ByVal url, ByVal method, ByVal postdata)

url:提交的网址

method:提交方式post/get

postdata:提交的数据,可以是json,也可以是其他

返回远程服务器上通信的反馈内容

7、get_paySign(ByVal snonce_str, ByVal sprepay_id, ByVal stimeStamp)

snonce_str:随机字符串

sprepay_id:数字证书认证之后的加密prepay_id

stimeStamp:时间戳

微信支付V3,返回最后提交的paySign

8、get_prepay_id(ByVal attach, ByVal body, ByVal nonce_str, ByVal notify_url, ByVal openid, ByVal out_trade_no, ByVal total_fee)

目的:微信支付V3获取Prepay_Id

attach:附加数据,主要用于notify的过程进行相关数据操作

body:下单内容

nonce_str:随机字符串(一般12位足够)

notify_url:支付成功后,微信服务器与我们这边服务器进行通讯的程序页面地址

openid:发起支付的客户的openid

out_trade_no:订单编号(随便设定一个不重复的编号即可,纯数字或字母数字组合)

total_fee:支付金额(记得需要乘以100,入库时记得除以100)

9、Get_Token()

获取通用access_token,这个与客户授权个人基本资料给第三方时的access_token有所不同,别混为一谈

10、Get_Ticket(ByVal AccessToken)

获取最新jsapi_ticket,变量:AccessToken 属于通用access_token

11、Get_RedirectUrl(ByVal CallUrl)

封装的登陆或授权URL,返回一个与微信服务器通讯后将code返回到callUrl内。

12、Get_Token_OpenID(ByVal Code)

Get_Token_OpenID:返回Json数据
可以得到token、openid
此处获取用户的token与通用token是不同(如没有开通第三方开发,无法获取到用户UnionID)
https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
正确放回:{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
错误返回:{" errcode":40029,"errmsg":"invalid code" }

13、GetUserInfo(ByVal token_openid_Json)

GetUserInfo:返回用户信息Json

获取用户的昵称、性别、国家、省份、城市、头像

sex : 用户的性别,值为1时是男性,值为2时是女性,值为0时是未知headimgurl:http://wx.qlogo.cn/mmopen/******/46 { 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),

用户没有头像时该项为空。若用户更换头像,原有头像URL将失效。}

privilege : 用户特权信息,json 数组,如微信沃卡用户为(chinaunicom)

unionid : 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。

14、WxSend(ByVal u_openid, ByVal u_token, ByVal u_text)

发送纯文本信息
POST方式请求
u_openid:用户openid
u_token:通用token
u_text:发送的内容

15、SendPicText(ByVal u_openid, ByVal u_token, ByVal u_title, ByVal u_description, ByVal u_url, ByVal img_url)

发送图文模板信息
POST方式请求
u_openid:用户openid
u_token:通用token
u_title:标题
u_description:描述
u_url:跳转地址
img_url:缩略图

16、SendModeMessege(ByVal iopenid, ByVal itemplate_id, ByVal iurl, ByVal itopcolor, ByVal idata, ByVal itoken)

POST方式请求
iopenid:用户openid
itemplate_id:模板ID
iurl:点击消息跳转的url
itopcolor:标题颜色
idata:模板格式数据(Json格式)
itoken:通用token

17、IfCancelWX(ByVal u_openid, ByVal u_token)

检测是否取消关注微信公众号
1 = 关注,0 = 取消关注,2 = 非法openid

上述均为Function函数,且均为Public公共函数,还有一些比较复杂算法的Private Function或Sub函数就没写出来了,外部不可以单独调用,都是配合Public函数的一些函数或方法。

接下来的博文就是针对WeixinDLL这个组建内的方法应用介绍,会直接上代码。

有不足之处,大家多多指教,ASP项目与微信服务号对接开发的技术讨论可以加V信:z18670092211

ASP程序写的项目与微信服务号(公众号)完美结合。仅需一个DLL组建WeixinDLL的更多相关文章

  1. .NET Core之微信支付之公众号、H5支付篇

    前言 本篇主要记录微信支付中公众号及H5支付全过程. 准备篇 公众号或者服务号(并开通微信支付功能).商户平台中开通JSAPI支付.H5支付. 配置篇 公众号或者服务号中 -------开发----- ...

  2. 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo

    原文:微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo 教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建 ...

  3. 微信系列之公众号Token验证

    微信系列之公众号Token验证 pycharm连接线上服务器开发 开发过程笔记 参考资料 python3安装web.py可以选择安装`pip install web.py==0.40.dev0 pyc ...

  4. 微信支付(公众号支付APIJS、app支付)服务端统一下单接口java版

    一.微信公众号支付APIJS: 要完整的实现微信支付功能,需要前后端一起实现,还需要微信商户平台的配置.这里只是涉及服务端的代码. jar包:pom.xml <!-- ↓↓↓↓↓↓↓↓ 支付相关 ...

  5. 微信程序开发系列教程(四)使用微信API创建公众号自定义菜单

    大家可能经常看到一些微信公众号具有功能强大的自定义菜单,点击之后可以访问很多有用的功能. 这篇教程就教大家如何动手做一做. 这个教程最后实现的效果是:创建一个一级菜单"UI5", ...

  6. 【weixin】微信企业号和公众号区别和关系是什么?

    在移动互联网快速发展和智能手机普遍应用的时代环境下,随着微信平台应用不断扩大和微信用户的迅速增加,微信公众号运营也有了很大的发展,企业.机构和个人纷纷迈入微信公众号运营的行列.微信公众号就是在微信公众 ...

  7. 【微信SEO】公众号也能做排名?

    [写于2016年8月] 最近,微信团队发出一则公告,开放公众号运营者一年内更改公众号名一次,这对不少名字起的奇葩名字(包括dkplus)的公众号来说是一件好事. 为什么说是好事呢?公众号名字直接关联到 ...

  8. .net 微信支付(公众号支付)遇到的问题

    啥也不说了搬砖的都知道老板说是什么就是什么 最近我老板让饿哦做一个微信支付的功能  还带微信上面京东众筹活动的那种,我买东西别人出钱的那种 然后用微信支付 我是新手之前也没有做过这个 所以估计着过程中 ...

  9. 【微信支付】公众号、商户基础配置和流程(包括设置支付授权目录、测试支付目录和白名单、JS接口安全域名、授权回调域名等)

    一.使用场景以及说明 使用场景:商户已有H5商城网站,用户通过消息或扫描二维码在微信内打开网页时,可以调用微信支付完成下单购买的流程. 说明:1.用户打开图文消息或者扫描二维码,在微信内置浏览器打开网 ...

随机推荐

  1. Go的switch

    目录 go的switch 一.语法 二.默认情况 三.多表达式判断 四.无表达式 五.Fallthrough go的switch switch 是一个条件语句,用于多条件匹配,可以替换多个if els ...

  2. (十二)数据库查询处理之Query Execution(1)

    (十二)数据库查询处理之Query Execution(1) 1. 写在前面 这一大部分就是为了Lab3做准备的 每一个query plan都要实现一个next函数和一个init函数 对于next函数 ...

  3. iOS之CoreBluetooth

    思路 手机与设备间的通讯方式CoreBluetooth是比较常见且通用的.在iOS开发中需明晰以下几点 蓝牙4.0最多可联机7个设备,iPhone6以上都是蓝牙4.0 两台iPhone并不直接通过蓝牙 ...

  4. cve-2018-2893 weblogic -WLS核心组件反序列化

    漏洞分析 https://www.freebuf.com/column/178103.html https://www.freebuf.com/vuls/177868.html 攻击者可以在未授权的情 ...

  5. Keytool 工具使用

    Keytool 管理私钥仓库(keystore)和与之相关的 X.509 证书链(用以验证与私钥对应的公钥),也可以用来管理其他信任实体 keytool 将密钥和证书存储在一个所谓的密钥仓库中,缺省的 ...

  6. Linux开发环境搭建——deepin系统的使用

    上大学的时候就在自己的笔记本上安装过深度操作系统(deepin),当时好像是15.x的版本.毕业后第一家公司是全Mac办公,因在学校期间有过完全Linux环境下的开发体验,上手Mac非常快.非常爽.前 ...

  7. 攻防世界 reverse 进阶 10 Reverse Box

    攻防世界中此题信息未给全,题目来源为[TWCTF-2016:Reverse] Reverse Box 网上有很多wp是使用gdb脚本,这里找到一个本地还原关键算法,然后再爆破的 https://www ...

  8. Python—关于Pandas缺失值问题(国内唯一)

    获取文中的CSV文件用于代码编程以及文章首发地址,请点击下方超链接 获取CSV,用于编程调试请点这 在本文中,我们将使用Python的Pandas库逐步完成许多不同的数据清理任务.具体而言,我们将重点 ...

  9. 使用Drone构建Docker映像

    使用Drone构建Docker映像 实践所用软件: Git Gogs Drone Docker 私有镜像仓库 实践链接:https://www.katacoda.com/courses/cicd/bu ...

  10. [搜索]P1088 火星人

    火星人 题目描述 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个非常大的数字告诉 ...