微信jsapi签名

微信jsapi签名,

1,先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。这个安全域名不用写到指定的页面,写个大概的范围就行,写到1级或者2级

2,引入jsapi ,jsapi分为两种,一种是http请求的,另一种是https的

http://res.wx.qq.com/open/js/jweixin-1.0.0.js     --http的

https://res.wx.qq.com/open/js/jweixin-1.0.0.js  --这个是https的

3,写入js

这是微信给的例子,自习看一下给的写的注释,头三个我们都能很容易的得到,但是第四个签名不是很容易,要绕个丸子

wx.config({
    debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
    appId: ‘‘, // 必填,公众号的唯一标识
    timestamp: , // 必填,生成签名的时间戳
    nonceStr: ‘‘, // 必填,生成签名的随机串
    signature: ‘‘,// 必填,签名,见附录1
    jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
});

4,接下来我们看一下签名规则

签名算法

签名生成规则如下:

参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。

----------------jsapi_ticket

这里面有个jsapi_ticket 这个很尴尬,需要我们自己去请求 微信,请求路径如下

string uri = string.Format(@"https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={0}&type=jsapi ", ReturnAccess_token());

ReturnAccess_token(),这个是我获取TOKEN的方法,

用这个连接去Get访问微信,就可以获取到JSAPI_TICKET了

---------------URL

签名里有一项是URL就是我们当前使用的的页面

接下来就是生成签名了,我是用的MVC做的,所以接下来给大家用MVC做演示

----------直接贴,生成签名的代码,可是代码太乱,直接上图,大家注意签名最后要使用 ToLower我忘写了....

这个方法返回的是一个键值对,我将键值对直接存到ViewData中,在页面直接使用,接着上图

OK 已经讲完了

如果你觉得好那就请加我的QQ群

ASP.NET鹰组 460845632

时间: 2024-12-17 01:52:51

微信jsapi签名的相关文章

微信JSAPI支付 统一下单 (.net后台)

交流QQ群  ASP.NET鹰组 460845632  我会倾囊相授 我们要做微信支付当配置好微信微信商户和支付配置之后我们首先应该看   https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1# 这是微信统一下单的参数,我将这个参数做成了一个数据模型 当做好这个数据模型之后仔细看一下里面那些参数是必须的,支付金额要注意,微信是按分来计算的 接下来我们就要生成签名,我这写好了个类  生成签名后 返回提交的值.....先给大家看

微信JSApi支付~订单号和微信交易号<转>

本文转载自:张占岭 原文链接:http://www.cnblogs.com/lori/p/5364213.html 谈谈transactionId和out_trade_no 前一篇微信JSApi支付~坑和如何填坑文章反映不错,所以又写了个后篇,呵呵. 每个第三方在线支付系统中都会有至少两类订单号,其一为支付系统的订单号,我们称为transactionId,其二为商户平台的订单号,我们通常称为out_trade_no,这两个号一般用来对账,在第三方支付平台你可以通过这两个订单号来查询订单的状态,而

使用微信jsapi时获取jsapi_ticket失败问题

问题描述 系统上线之后运行良好,昨天下午开始突然报 "微信jsapi初始化失败"的错误提示 排查 1.开启使用了jsapi的页面的wx.config的debug,提示signature签名错误 2.既然签名错误就一步步打印获取这个数据的步骤上的中间数据,看是哪个错了 3.结果是用php curl模拟get  https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsap

微信JSAPI支付(比较详细) 关于getRrandWCPayRequest:fail_invalid appid 错误

原文:微信JSAPI支付(比较详细) 关于getRrandWCPayRequest:fail_invalid appid 错误 首先微信支付需注册  微信公从平台开发 和 微信支付商户平台 关于4个密钥,如何获得:有图 AppID(应用ID) :wx000000000 (来自微信公众平台->开发者中心->配置项->开发者ID->AppID(应用ID)) AppSecret(应用密钥) :62d0000000000000000000ae (来自微信公众平台->开发者中心->

微信内网页支付(微信 JSAPI 支付)的一点经验

微信 JSAPI 支付的流程是:服务端根据情况,向微信服务器发起"下单"请求.此处需要提供自己维护唯一的订单号,并要求签名加密.根据"下单"反馈的微信提供的预支付"订单号",用刚才下单请求参数同样的签名方式,对几个基本数据进行封包签名.将签名摘要,和这几个基本数据,传输给 JavaScript 端.JavaScript 通过微信内置对象的方法,唤起支付,并前端返回支付操作结果.微信服务端会异步通知服务端,支付结果:此处通知地址是之前"下

微信JSAPI模式与浏览器类型安全访问

摘要: 微信浏览器是在微信安装时内置在微信中的,针对浏览器的类型我们可以设置相应的安全策略--仅允许在微信内置浏览器中打开.本文选自<微信企业号开发完全自学手册>. 1 JSAPI模式介绍 在介绍JSAPI模式之前,首先需要介绍一下微信内置浏览器.可能很多人注意到了,在打开微信"朋友圈"链接的时候会出现进度条,如图5.1所示,这实际上就是微信内置浏览器访问页面的进度.也就是说,"朋友圈"是通过微信内置的浏览器访问的手机页面,并且微信浏览器是在微信安装时内

微信jsApI及微信分享对应在手机浏览器的调用总结。

摘录自别人的博客: 第一篇:微信内置浏览器的JsAPI(WeixinJSBridge续) 之前有写过几篇关于微信内置浏览器(WebView)中特有的Javascript API(Javascript Interface)的文章,不过随着微信官方的调整,部分API已经不能直接使用,比如类似直接分享到朋友圈 WeixinJSBridge.invoke('shareTimeline',data,callback) 这样的功能,直接调用,会得到一个访问拒绝的response.后来重新调研了下,整理出来了

微信JSAPI支付

最近在微信H5页面内集成微信JSAPI支付,遇到不少问题,现将集成步骤及遇到的问题记录如下: 1.官方下载SDK,下载地址:https://pay.weixin.qq.com/wiki/doc/api/download/WxpayAPI_php_v3.zip 2.下载之后,只保留存放证书的文件cert(从微信公众平台"API安全"中下载),库文件lib,日志文件logs,以及example里面的notify.php,jsapi.php文件 3.配置WxPay.Config.php文件(

微信JSApi支付~集成到MVC环境后的最后一个坑(网上没有这种解决方案)

大叔第一人 之前写了关于微信的坑<微信JSApi支付~坑和如何填坑>,今天将微信的jsapi支付封装到了MVC环境里,当然也出现了一些新的坑,如支付参数应该是Json对象而不是Json字符串,这样也会应付引起“get_brand_wcpay_request:fail_invalid appid”这个大家都知道的异常,呵呵,解决方案网上说是“授权目录“,事实上,还有一种原因,那就是你的WeixinJSBridge.invoke方法里的参数应该是Json对象而不是字符串,这才是最重要的. 代码我们