使用微信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=jsapi 这个去获取jsapi_ticket时报错400,请求参数错误

请求参数错误!!!困扰了很久!之前能成功!

原因:问题出在ACCESS_TOKEN上,这个token的格式会不会出现特殊字符腾讯没有说明,而“JSSDK说明文档”中说用http GET方式请求jsapi_ticket时也没说明 这个 token中会出现特殊字符!!!
在PHP中没有对该token进行urlencode,于是当token中有特殊字符时就出现400

解决

get和post开放API时,对格式不明的请求参数使用urlencode

时间: 2024-10-11 23:06:03

使用微信jsapi时获取jsapi_ticket失败问题的相关文章

调用微信JsAPI端获取位置

public partial class test : BasePage { protected test() { AccessPage = PageWebType.WX; } protected string app_Id { get { return ViewState["app_Id"].ToString(); } set { ViewState["app_Id"] = value; } } protected string timestamp { get {

asp源码微信公众号获取jsapi_ticket

Public Function GetAuthorization_Code() Dim url, params url = "https://open.weixin.qq.com/connect/oauth2/authorize?" params = "appid="&s_APPID params = params & "&redirect_uri=" & server.URLEncode(s_REDIRECT_U

微信js-sdk开发获取签名和获取地理位置接口示例

### 微信js-sdk开发获取签名和获取地理位置接口示例 前言:在做微信公众号开发时需要获取用户的地理位置信息,之前通过高德或者百度.腾讯等地图的api时发现经常获取不到,毕竟第三方的东西,后来改为采用微信内置的js-sdk中的获取地理位置接口,在这主要记录下签名的获取(麻烦点)和一个获取地理位置的例子. 准备工作: 微信测试号appid和appsecret 获取地址:微信测试账号获取 在测试账号里先填写接口配置信息和js接口安全域名(这个是必须的) 示例:页面中需要点击图标获取地理位置信息

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

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

手机网站的网页进行微信转发时遇到的问题

以前公司往外推送微信信息的时候,都是在后台添加的文本,大家转发起来没有任何问题.最近手机网站上上了几个新活动,用微信转发的时候,问题来了,左下角的小图片没有,应该是文字简介的地方是一条url,实在不雅观.用一些笨笨的方法也能够弥补一下这个问题,比如,把<title>标签中的内容丰满一下,在脚本的开头可以隐藏一张图片,确实标题和图片能够出来,但这终究不是正道,今天就研究了一下微信的这个东东,在网上搜索了一下,还真是找到一个非常棒的类库,用起来效果也很不错. <?php class Weix

解析nodejs微信开发-2获取ticket

获取ticket是需要拼接url,url中需要获得的tocken 1.先判断有无tocken:若有则拼接url: 2.请求url: a.处理回调数据,注意时间戳和签名处理方式,此两项并未存到ticket中, b.存储回调数据,存储时将时间戳和签名存到ticket中:注意此两项并未存到数据库,而是在存储时动态生成的时间戳和签名,签名还有一个签名函数: c.返回存储数据. 1 function refreshTicket(appid, appsecret, page, ticket, res) {

asp.net微信jsapi支付

1.前台页面: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server">    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    <meta name="viewpo

微信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,

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

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