Ⅰ 如何在cocos2dx接入微信登录
打开 js接口签名校验工具填入相应的数据:1)jsapi_ticket:填入上一步获取的ticket2)noncestr:这里随机生成一个字符串填进去(VQhYOUJRz6RolHqN)3)timestamp:这里填入一个时间戳,去掉毫秒的3位(如:1420870884)-这里尽量写ticket生成后的一段时间,newDate()-0可以获取当前的时间戳4)url:准备放页面的地址(域名必须在第二部中设置到安全域名内,如:.cocos2d-x.org/wechat.html)点击生成签名。记录下下面出现的signature这个值。
Ⅱ 手把手教你调用微信扫一扫!三分钟包会
这是我第一次公众号开发,本以为看着微信官方文档直接复制粘贴就好了,没想到是我天真了,爬过一个坑又入一个坑!就这么一个简单的事,竟然搞了一下午,所以写了这篇文章,希望可以帮到大家!
第一步:引入 weixin-js-sdk
直接在 html 文件内,使用 script 引入:
或者
第二步:权限验证配置
timestamp,nonceStr,signature 重要信息请根据自己的公众号信息去获取。需要注意的是 debug 调试的时候,设置为 true ,会自动弹出配置成功或失败信息,调试时可以借助它。
第三步:调用扫一扫接口
我们在需要的按钮处,点击事件处开始调用扫码接口,如:
做了一个判断处理,检查只有微信浏览器,其他浏览器不可以调用:
第四步:真机测试
真机测试的时候,一直在提示:
errMsg:config:invalid signature
中文叫做签名无效。
查找原因是因为我的签名获取来和官方 微信 js 接口签名校验工具获取来的数据不一样,很明显获取的签名有问题,是因为我的 url 配置和前端调起接口的 url 不一致造成的。
第五步:苹果手机测试
苹果手机真机测试,提示错误信息为:
the permission value is offline verifying
翻译为中文:权限值正在脱机验证
这个错误原因是 config 没有正确执行。
又继续去检查签名的问题,最后发现是后台接口字段写错了,欲哭无泪,总之还是签名信息错误。
第六步:安卓正常,苹果点击无反应
用安卓测试的时候,竟然好了,完美展示扫码结果,以为要好了。使用 ios 测试的时候,竟然发现点击的时候没有任何反应。
找了半天原因,是因为 window.location.href 不同造成的。
测试结果:
安卓:https://hp.******.net/
IOS:https://hp.******.net//
IOS 手机就是因为 url 与签名配置处的 url 不同,所以导致 config 执行失败。究其原因是因为我的 vue-router 是 hash 模式。
解决方案:把我的 hash 模式换成 history 模式。记得后台也需要配置 nginx 。
第七步:IOS 扫码无反应
当 IOS 能调起接口的那一刻,我以为要成功了,哪知道它就是要与 安卓 与众不同,扫码之后没有任何反应,但是如果你快速地连续多扫几次就会出现结果。
你就说要命不?网上查找了半天,看见有的人说有延时,最后想干脆加个延时算了。
果然加了延时之后就好了。
第八步:扫码结果处理
可能存在问题:
1、iOS设备扫码正常,Android设备扫码后没反应
2、Android设备扫码正常,iOS设备扫码后没反应
原因 :微信开发文档并没有说清楚,其实在微信后台可能是维护了2个接口, 或者是对设备类型进行了区别,总之在 回调 函数中返回的结果封装对象并不是同一个, 所以这要求我们也进行相应的处理, 不然就会出现上面这种默认奇妙的问题。
IOS 返回结果:
Android 结果:
第九步:修改路由
本以为 苹果安卓手机都能够正常扫码,没问题了。但是领导换需求了,之前是扫码放到外边,可以匿名扫。现在要修改成登录之后才可以扫码。
我就把路由修改了一下,先在登录页登录成功之后,再进入扫码页,后台也同步修改了 url 地址,修改完测试发现:
安卓的一切正常。
苹果手机坏了!
奔溃了,看看错误提示:noPermissionJsApi:[],errMsg:"config:ok"。
确定之后有一个错误提示。
errMsg:scanQRCode:the perssion value is offline verifying
一顿网络猛如虎,半天原地打转转!
有前边一次经验教训,我就又去找地址的原因。最后发现是竟然 $router.push 的跳转影响了我的 url ,在 IOS 上的 push 跳转不能写入浏览器的地址栏,但是安卓可以,导致安卓和 ios 跳转之后的地址不同,所以 ios 失败了。
解决办法:
此时就正常运行了。这下满足项目要求了,不会再出什么幺蛾子了!
微信官方开发文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#4
Ⅲ 微信 签名不对 请检查签名是否与开放平台上填写的一致
问题:微信分享时提示“签名不对,请检查签名是否与开放平台上填写的一致。”
看了下开放平台,签名填写的是包名(当时申请时候赶时间就随便填了),而它的要求则是: 用于对当前应用进行二次身份校验,开发者可以使用签名生成工具直接从安装当前应用的手机中获取。应用签名由开发者签名该应用的keystore文件决定。
所以,用签名生成工具生成一个吧,官方文档中有该工具的安装包:
点击下载,把apk发到手机上安装,打开后是这样的:
输入你的包名,点击Get Signature按钮,则生成了签名(绿色的):
复制到开放平台,过会儿再调用即可(前提是,项目打包时候生成过签名,不然,还是不行的,需要重新打包,也就是项目中的签名需要跟开放平台的签名一致就可以啦):
Ⅳ 如何在Cocos2d-JS游戏中快速接入微信SDK
近日,微信公众平台面向开发者推出了微信内网页开发工具包(微信JS-SDK),内含11类接口集。
从此之后,开发者不仅能够在网页上使用微信本身的拍照、选图、语音、位置等基本能力,还可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为用户提供更优质的网页体验。
那么问题来了:如何在Cocos2d-JS游戏中快速接入微信SDK?
接下来我们将用基于Cocos2d-JS的微信游戏《来自喵星的你》来做个说明,教大家如何快速接入刚刚发布的微信SDK。
(微信支付API正在路上,欢迎关注下期连载哦!)
1.申请公众号
因为微信只能使用公众号接入SDK,所以我们必须先注册一个公众号。
2.设置公众号
登录公众平台后,点击左下角的 设置-公众号设置。右侧有一个js接口安全域名的设置,这里可以绑定3个用到的域名,必须填入顶级域名。
然后点击左下角的 开发者中心,右侧会有一个AppID和一个AppSecret。这两个先记录下来,过后会用到。
3.生成token
打开页面 微信公众平台接口调试工具 并且填入刚才的appid和secret,点击检查问题。记录下返回结果里面的“access_token”的值。
4.获取ticket
复制这个链接:https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=填写刚刚获取的access_token&type=jsapi
并在里面的access_token=后面填入刚刚获取的access_token(对的,就是那一串乱码一样的东西),回车!!
然后把“ticket”的值复制出来,并保存起来,这个就是当前appid的ticket了。
5.生成签名
打开 微信 JS 接口签名校验工具 填入相应的数据:
1)jsapi_ticket: 填入上一步获取的ticket
2)noncestr: 这里随机生成一个字符串填进去(VQhYOUJRz6RolHqN)
3)timestamp: 这里填入一个时间戳,去掉毫秒的3位(如:1420870884) - 这里尽量写ticket生成后的一段时间,new Date() - 0可以获取当前的时间戳
4)url: 准备放页面的地址(域名必须在第二部中设置到安全域名内,如:http://www.cocos2d-x.org/wechat.html)
点击生成签名。记录下下面出现的signature这个值。
6.页面引入微信SDK并初始化
在页面中加入:
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
并且执行初始化:
Ⅳ 微信支付商户签名错误
官方文档内容如下:
备注:prepay_id 通过微信支付统一下单接口拿到,paySign 采用统一的微信支付 Sign 签名生成方版法,注意这里 appId 也要参权与签名,appId 与 config 中传入的 appId 一致,即最后参与签名的参数有appId, timeStamp, nonceStr, package, signType。
其实根本不是这么回事,完全是扯犊子,参与签名的参数根本不不上面列出的,
实际的签名字符串应该是:"appId="+appId+"&nonceStr="+noncestr + "&package=prepay_id="+prepay_id+"&signType=MD5&timeStamp="+timestamp+"&key="+key
这里的key是微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置
这里设置的密钥。
腾讯他娘的狗屎文档,写得真他娘烂。
Ⅵ 微信小程序签名错误(统一下单)
第一次开发微信小程序,遇到了这个签名错误,在此进行记录。
接口链接:
https://api.mch.weixin.qq.com/pay/unifiedorder
微信验证签名工具地址:
https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1
统一下单官网地址L:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1
发送xml参数
其中,appid查找当前小程序的appid
mch_id,是当前商户号的id
spbill_create_ip 就是当前计算机ip
其余参数可以在官方文档中找到。通过官方文档的说明进行拼接,生成签名
当参数发过去后,显示的是签名错误,并且通过校验工具,显示是成功的。找了很久原因后,发现,需要在商户平台上重置api秘钥,
是因为签名最后拼接的key的问题。
第一次我设置过了这个秘钥,但总是显示签名错误。今天重置了一下,再次进行请求之后,该错误解决。
注:一定要对应的小程序和商户号,否则也会产生问题。