发送给朋友按纽开关 操作

此页面使用Javascript。请在您的浏览器中启用Javascript,以浏览全页面。谢谢!
bShare产品
bShare介绍
bShare安装
免费获取分享代码
bShare推出,让你的应用插上分享的翅膀。
更多更详细的站长数据统计和分析,快去看看吧。
我正在使用 .bShare是个便捷的网络分享服务,让用户能够更轻易地将网络上看到的精彩内容分享到许多国内的社会化网络上,如开心网,人人网及新浪微博!如果你也跟我一样喜欢分享网络文章、新闻,推荐你也快来加入bShare吧。如果你是网站的站长,在站上装上bShare,还能让您的读者用户将你创造的精彩内容散播在整个网络上,而且还能追踪数据。加载轻松简单,而且完全免费!有兴趣,就到官网了解更多
(上海)信息科技有限公司。版权所有。 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
如何找到朋友网好友的QQ号码
下载积分:400
内容提示:如何找到朋友网好友的QQ号码
文档格式:DOC|
浏览次数:998|
上传日期: 18:50:08|
文档星级:
该用户还上传了这些文档
如何找到朋友网好友的QQ号码
官方公共微信照片处理完后一键发送到酷盘 快速方便共享给好友
游玩归来想第一时间分享自己的路上美景,当然有些包括自己的照片您需要美化一下,您是怎么做的呢?是不是用照片处理软件,一个个处理好了,再保存下来,再上传到网上呢?如果是这样你就out了,现在是信息化的时代,一切都讲究快、方便!今天新客网小编为大家推荐一篇文章,让您美化照片之后一键即可分享!
需要用到的软件是美图秀秀,美图秀秀上处理完照片之后有保存与分享按钮,直接点击就可以发送到酷盘。废话少说,直接上教程喽!
&&&一键上传图片到酷盘
&第一步:启动美图秀秀,打开要处理的照片并对其进行美化。美化完毕,单击界面右上方的&保存与分享&按钮,打开&美图秀秀&保存选项&对话框。
图1:保存与分享美化好的照片
&第二步:在左侧的&图片名称和格式&项中,设置好图片名称、格式和画质设置等项,单击右侧的&发到酷盘&按钮。
图2:发送到酷盘
&第三步:在出现的打开&美图版酷盘上传工具&工具,输入酷盘账号和密码,单击&登录&按钮。进入&图片上传&界面。
图3:登录酷盘
&第四步:由于是第一次使用美图的一键上传到酷盘功能,所以我们首先要在该界面中,单击&新建子相册&按钮,打开&新建分类&对话框,在其中设置好一个用于存放上传的图片的相册,如&美图共享&,设置完毕,单击&新建并上传&按钮,当前的图片的就会被上传到酷盘的&美图秀秀相册美图共享&文件夹中。
&&&&轻松完成共享
&酷盘提供了相当简便的方式,让我们和好友共享指定的资源。一是利用客户端来实现,二是在WEB页面中实现。
&如果你安装了酷盘客户端,可以进入&我的酷盘&,找到并右击要共享的文件夹或文件(此例中为&美图共享&),然后在弹出的右键菜单中选择&共享文件夹&,输入要共享的好友的邮件地址或手机号(多名成员用&;&号隔开);在&想说的话&文本框中输入对该共享资源的简介,单击&邀请&按钮。
图4:酷盘分享美图秀秀照片给你的好友
&酷盘会向被邀请的用户发送一封电子邮件,同时在该用户登录酷盘后,会在桌面系统区上方显示邀请通知,朋友只需单击&查看&按钮,进入共享文件列表,单击共享文件右侧的&接受&按钮,相应的共享文件即会同步他的酷盘中,接下来他就可以像使用本地文件一样,对文件进行查看、编辑等操作了。为了将共享文件和自己的私有文件区分开,酷盘在共享文件夹的图标中,添加了一个蓝色的酷盘标志,非常好认。
图5:好友接受邀请后即可欣赏分享的照片
&如此方法分享美图秀秀的图片,是不是很新奇呢?酷盘不止支持PC客户端,当照片分享到酷盘后,用户还可通过iPhone、Android手机以及平板电脑进行访问,可以说是让你的无处不在!
本文来源:it168
如果您喜欢本文请分享给您的好友,谢谢!如想浏览更多更好的内容,请登录:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)微信JS接口 分享到朋友圈 分享给朋友 分享到QQ 拍照或从手机相册中选图 识别音频并返回识别结果 使用微信内置地图查看位置来源:&
微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。
通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。
此文档面向网页开发者介绍微信JS-SDK如何使用及相关注意事项。
在使用微信JS-SDK对应的JS接口前,需确保公众号已获得使用对应JS接口的权限,可登录进入&开发者中心&查看对应的接口权限。
注意: 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录进入&公众号设置&》&功能设置&里填写&JS接口安全域名&。
在需要调用JS接口的页面引入如下JS文件,(支持https):
备注:支持使用 AMD/CMD 标准模块加载方法加载
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用)。
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名,见附录1
jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
所有接口通过wx对象(也可使用jWeixin对象)来调用,参数是一个对象,除了每个接口本身需要传的参数之外,还有以下通用参数:
success:接口调用成功时执行的回调函数。
fail:接口调用失败时执行的回调函数。
complete:接口调用完成时执行的回调函数,无论成功或失败都会执行。
cancel:用户点击取消时的回调函数,仅部分有用户取消操作的api才会用到。
trigger: 监听Menu中的按钮点击时触发的方法,该方法仅支持Menu中的相关接口。
以上几个函数都带有一个参数,类型为对象,其中除了每个接口本身返回的数据之外,还有一个通用属性errMsg,其值格式如下:
调用成功时:"xxx:ok" ,其中xxx为调用的接口名
用户取消时:"xxx:cancel",其中xxx为调用的接口名
调用失败时:其值为具体错误信息
wx.checkJsApi({
jsApiList: ['chooseImage'] // 需要检测的JS接口列表,所有JS接口列表见附录2,
success: function(res) {
// 以键值对的形式返回,可用的api值true,不可用为false
// 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
备注:checkJsApi接口是客户端6.0.2新引入的一个预留接口,第一期开放的接口均可不使用checkJsApi来检测。
请注意不要有诱导分享等违规行为,对于诱导分享行为将永久回收公众号接口权限,详细规则请查看: 。
wx.onMenuShareTimeline({
title: '', // 分享标题
link: '', // 分享链接
imgUrl: '', // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
cancel: function () {
// 用户取消分享后执行的回调函数
wx.onMenuShareAppMessage({
title: '', // 分享标题
desc: '', // 分享描述
link: '', // 分享链接
imgUrl: '', // 分享图标
type: '', // 分享类型,music、video或link,不填默认为link
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
success: function () {
// 用户确认分享后执行的回调函数
cancel: function () {
// 用户取消分享后执行的回调函数
wx.onMenuShareQQ({
title: '', // 分享标题
desc: '', // 分享描述
link: '', // 分享链接
imgUrl: '' // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
cancel: function () {
// 用户取消分享后执行的回调函数
wx.onMenuShareWeibo({
title: '', // 分享标题
desc: '', // 分享描述
link: '', // 分享链接
imgUrl: '' // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
cancel: function () {
// 用户取消分享后执行的回调函数
wx.chooseImage({
success: function (res) {
var localIds = res.localI // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
wx.previewImage({
current: '', // 当前显示的图片链接
urls: [] // 需要预览的图片链接列表
wx.uploadImage({
localId: '', // 需要上传的图片的本地ID,由chooseImage接口获得
isShowProgressTips: 1// 默认为1,显示进度提示
success: function (res) {
var serverId = res.serverId; // 返回图片的服务器端ID
备注:可用微信下载多媒体文件接口下载上传的图片,此处获得的 serverId 即 media_id,参考文档
wx.downloadImage({
serverId: '', // 需要下载的图片的服务器端ID,由uploadImage接口获得
isShowProgressTips: 1// 默认为1,显示进度提示
success: function (res) {
var localId = res.localId; // 返回图片下载后的本地ID
wx.startRecord();
wx.stopRecord({
success: function (res) {
var localId = res.localId;
wx.onVoiceRecordEnd({
// 录音时间超过一分钟没有停止的时候会执行 complete 回调
complete: function (res) {
var localId = res.localId;
wx.playVoice({
localId: '' // 需要播放的音频的本地ID,由stopRecord接口获得
wx.pauseVoice({
localId: '' // 需要暂停的音频的本地ID,由stopRecord接口获得
wx.stopVoice({
localId: '' // 需要停止的音频的本地ID,由stopRecord接口获得
wx.onVoicePlayEnd({
serverId: '', // 需要下载的音频的服务器端ID,由uploadVoice接口获得
success: function (res) {
var localId = res.localId; // 返回音频的本地ID
wx.uploadVoice({
localId: '', // 需要上传的音频的本地ID,由stopRecord接口获得
isShowProgressTips: 1// 默认为1,显示进度提示
success: function (res) {
var serverId = res.serverId; // 返回音频的服务器端ID
备注:可用微信下载多媒体文件接口下载上传的语音,此处获得的 serverId 即 media_id,参考文档
wx.downloadVoice({
serverId: '', // 需要下载的音频的服务器端ID,由uploadVoice接口获得
isShowProgressTips: 1// 默认为1,显示进度提示
success: function (res) {
var localId = res.localId; // 返回音频的本地ID
wx.translateVoice({
localId: '', // 需要识别的音频的本地Id,由录音相关接口获得
isShowProgressTips: 1, // 默认为1,显示进度提示
success: function (res) {
alert(res.translateResult); // 语音识别的结果
wx.getNetworkType({
success: function (res) {
var networkType = res.networkT // 返回网络类型2g,3g,4g,wifi
wx.openLocation({
latitude: 0, // 纬度,浮点数,范围为90 ~ -90
longitude: 0, // 经度,浮点数,范围为180 ~ -180。
name: '', // 位置名
address: '', // 地址详情说明
scale: 1, // 地图缩放级别,整形值,范围从1~28。默认为最大
infoUrl: '' // 在查看位置界面底部显示的超链接,可点击跳转
wx.getLocation({
timestamp: 0, // 位置签名时间戳,仅当需要兼容6.0.2版本之前时提供
nonceStr: '', // 位置签名随机串,仅当需要兼容6.0.2版本之前时提供
addrSign: '', // 位置签名,仅当需要兼容6.0.2版本之前时提供,详见附录4
success: function (res) {
var longitude = res. // 纬度,浮点数,范围为90 ~ -90
var latitude = res. // 经度,浮点数,范围为180 ~ -180。
var speed = res. // 速度,以米/每秒计
var accuracy = res. // 位置精度
wx.hideOptionMenu();
wx.showOptionMenu();
wx.closeWindow();
wx.hideMenuItems({
menuList: [] // 要隐藏的菜单项,所有menu项见附录3
wx.showMenuItems({
menuList: [] // 要显示的菜单项,所有menu项见附录3
wx.hideAllNonBaseMenuItem();
wx.showAllNonBaseMenuItem();
wx.scanQRCode({
desc: 'scanQRCode desc',
needResult: 0, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
scanType: ["qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
var result = res.resultS // 当needResult 为 1 时,扫码返回的结果
wx.openProductSpecificView({
productId: '', // 商品id
viewType: '' // 0.默认值,普通商品详情页1.扫一扫商品详情页2.小店商品详情页
wx.chooseCard({
shopId: '', // 门店Id
cardType: '', // 卡券类型
cardId: '', // 卡券Id
timeStamp: 0, // 卡券签名时间戳
nonceStr: '', // 卡券签名随机串
cardSign: '', // 卡券签名,详见附录6
success: function (res) {
var cardList= res.cardL // 用户选中的卡券列表信息
wx.addCard({
cardList: [{
cardId: '',
cardExt: ''
}], // 需要添加的卡券列表
success: function (res) {
var cardList = res.cardL // 添加的卡券列表信息
wx.openCard({
cardList: [{
cardId: '',
}]// 需要打开的卡券列表
wx.chooseWXPay({
timestamp: 0, // 支付签名时间戳
noncestr: '', // 支付签名随机串
package: '', // 订单详情扩展字符串,详见附录5
paySign: '', // 支付签名,详见附录5
jsapi_ticket
生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。
参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):
用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket):
成功返回如下JSON:
"errcode":0,
"errmsg":"ok",
"ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
"expires_in":7200
获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。
签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2&)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。
即signature=sha1(string1)。
noncestr=Wm3WZYTPz0wzccnW
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg
timestamp=
步骤1. 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2&)拼接成字符串string1:
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW&timestamp=&url=http://mp.
步骤2. 对string1进行sha1签名,得到signature:
f4d90daf4b3bca175ba34c443a7b
签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。
签名用的url必须是调用JS接口页面的完整URL。
出于安全考虑,开发者必须在服务器端实现签名的逻辑。
版本1.0.0接口
onMenuShareTimeline
onMenuShareAppMessage
onMenuShareQQ
onMenuShareWeibo
startRecord
stopRecord
onVoiceRecordEnd
pauseVoice
onVoicePlayEnd
uploadVoice
downloadVoice
chooseImage
previewImage
uploadImage
downloadImage
translateVoice
getNetworkType
openLocation
getLocation
hideOptionMenu
showOptionMenu
hideMenuItems
showMenuItems
hideAllNonBaseMenuItem
showAllNonBaseMenuItem
closeWindow
scanQRCode
chooseWXPay
openProductSpecificView
chooseCard
举报: "menuItem:exposeArticle"
调整字体: "menuItem:setFont"
日间模式: "menuItem:dayMode"
夜间模式: "menuItem:nightMode"
刷新: "menuItem:refresh"
查看公众号(已添加): "menuItem:profile"
查看公众号(未添加): "menuItem:addContact"
发送给朋友: "menuItem:share:appMessage"
分享到朋友圈: "menuItem:share:timeline"
分享到QQ: "menuItem:share:qq"
分享到Weibo: "menuItem:share:weiboApp"
收藏: "menuItem:favorite"
分享到FB: "menuItem:share:facebook"
调试: "menuItem:jsDebug"
编辑标签: "menuItem:editTag"
删除: "menuItem:delete"
复制链接: "menuItem:copyUrl"
原网页: "menuItem:originPage"
阅读模式: "menuItem:readMode"
在QQ浏览器中打开: "menuItem:openWithQQBrowser"
在Safari中打开: "menuItem:openWithSafari"
邮件: "menuItem:share:email"
一些特殊公众号: "menuItem:share:brand"
addrSign的生成规则与JS-SDK权限验证的签名生成规则相同(参考附录1),只是参与签名参数有所不同。参与addrSign的签名参数有:appId、url(当前网页url)、timestamp、noncestr、accesstoken(用户授权凭证,请参照oauth2.0 协议获取)。
订单详情(package)扩展字符串定义
在商户调起JS API 时,商户需要此时确定该笔订单详情,并将该订单详情通过一定的方式进行组合放入package。JS API 调用后,微信将通过package 的内容生成预支付单。下
面将定义package 的所需字段列表以及签名方法。
接口需要注意:所有传入参数都是字符串类型!
package 所需字段列表:
银行通道类型
字符串类型,固定为"WX",注意大写
固定为"WX";
字符串类型,128字节以下
商品描述;
字符串类型,128字节以下
附加数据,原样返回;
字符串类型
字符串类型注册时分配的财付通商户号partnerId;
out_trade_no
商户订单号
字符串类型,32字节以下
商户系统内部的订单号,32 个字符内、可包含字母;确保在商户系统唯一
订单总金额
字符串类型
订单总金额,单位为分;
字符串类型,默认值是"1"
取值:1(人民币),暂只支持1;
notify_url
字符串类型,255字节以下
在支付完成后,接收微信通知支付结果的URL,需给绝对路径, 255 字符内, 格式如:
spbill_create_ip
订单生成的机器IP
字符串类型,15字节以下
指用户浏览器端IP,不是商户服务器IP,格式为IPV4;
time_start
交易起始时间
字符串类型,14字节以下
订单生成时间,格式为yyyyMMddHHmmss,如2009 年12 月25 日9 点10 分10 秒表示为10,时区为GMT+8 beijing;该时间取自商户服务器;
time_expire
交易结束时间
字符串类型,14字节以下
订单失效时间,格式为yyyyMMddHHmmss,如2009 年12 月27 日9 点10 分10 秒表示为10,时区为GMT+8 beijing;该时间取自商户服务器;
transport_fee
字符串类型
物流费用,单位为分。如果有值,必须保证
transport_fee + product_fee=total_fee;
product_fee
字符串类型
物流费用,单位为分。如果有值,必须保证
transport_fee + product_fee=total_fee;
字符串类型
商品标记,优惠券时可能用到;
input_charset
传入参数字符编码
字符串类型
取值范围:"GBK"、"UTF-8",默认:"GBK"
package 生成方法:
由于package中携带了生成订单的详细信息,因此在微信将对package里面的内容进行鉴
权,确定package携带的信息是真实、有效、合理的。因此,这里将定义生成package字符
串的方法。
对所有传入参数按照字段名的ASCII码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2&)拼接成字符串string1,注意:值为空的参数不参与签名;
在string1最后拼接上key=paternerKey得到stringSignTemp字符串,并对stringSignTemp进行md5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
对传入参数中所有键值对的value进行urlencode转码后重新拼接成字符串string2。对于JS前端程序,一定要使用函数encodeURIComponent进行urlencode编码(注意!进行urlencode时要将空格转化为%20而不是+)。
将sign=signValue拼接到string2后面得到最终的package字符串。
下面定义了一段生成package字符串的示范过程:
假设以下为package传入参数:
bank_type=WX
body=支付测试
fee_type=1
input_charset=UTF-8
notify_url=
out_trade_no=9cbf2a8d9f76a638c0a3
spbill_create_ip=196.168.1.1
total_fee=1
i: 经过a过程URL键值对字典序排序后的字符串string1为:
bank_type=WX&body=支付测试&fee_type=1&input_charset=UTF-8&notify_url=http://we
&out_trade_no=9cbf2a8d9f76a638c0a3&partner=&spbill_
create_ip=196.168.1.1&total_fee=1
ii:经过b过程后得到sign为:
=md5(string1&key=53e9cf7b0519d).toUpperCase
=md5(bank_type=WX&body=支付测试&fee_type=1&input_charset=UTF-8&notify_url=htt
p://&out_trade_no=9cbf2a8d9f76a638c0a3&partner=&
spbill_create_ip=196.168.1.1&total_fee=1&key=53e9cf7b0519d).toUpper
="7f77b507b755b7e380f8".toUpperCase()
="7F77B507B755B7E380F8"
iii:再对传入参数中的每一个键值对中的value进行urlencode编码后得到:
bank_type=WX&body=%E6%94%AF%E4%BB%98%E6%B5%8B%E8%AF%95&fee_typ
e=1&input_charset=UTF-8&notify_url=http%3A%2F%&out_trade_no=7240b6
5810859cbf2a8d9f76a638c0a3&partner=&spbill_create_ip=196.168.1.1&total_fee=1
iv:拼接上sign后得到最终package结果:
bank_type=WX&body=%E6%94%AF%E4%BB%98%E6%B5%8B%E8%AF%95&fee_typ
e=1&input_charset=UTF-8&notify_url=http%3A%2F%&out_trade_no=7240b6
5810859cbf2a8d9f76a638c0a3&partner=&spbill_create_ip=196.168.1.1&total_fee=1
&sign=7F77B507B755B7E380F8
支付签名(paySign)生成方法
paySign字段是对本次发起JSAPI的行为进行鉴权,只有通过了paySign鉴权,才能继
续对package鉴权并生成预支付单。paySign的生成规则与JS-SDK权限验证的签名生成规则相同(参考附录1)。
参与paySign签名的字段包括:appid、timestamp、noncestr、package以及appkey(即
paySignkey)。
卡券扩展字段cardExt说明
cardExt本身是一个JSON字符串,是商户为该张卡券分配的唯一性信息,包含以下字段:
指定的卡券code码,只能被领一次。use_custom_code字段为true的卡券必须填写,非自定义code不必填写。
指定领取者的openid,只有该用户能领取。bind_openid字段为true的卡券必须填写,非自定义openid不必填写。
时间戳,商户生成从日00:00:00至今的秒数,即当前的时间,且最终需要转换为字符串形式;
由商户生成后传入。
签名,商户将接口列表中的参数按照指定方式进行签名,签名方式使用SHA1,具体签名方案参见下文;由商户按照规范签名后传入。
红包余额,以分为单位。红包类型必填(LUCKY_MONEY),其他卡券类型不填。
将appsecret(第三方用户唯一凭证密)、timestamp、card_id、code、openid、balance的value值进行字符串的字典序排序。
将所有参数字符串拼接成一个字符串进行sha1加密,得到signature。
signature中的timestamp和card_ext中的timestamp必须保持一致。
假如数据示例中code=23456,timestamp=,card_id=345667,appsecret=45678则signature=sha1(89)=4F4FAE4E1BC940FEC03E。
卡券签名cardSign说明
将appsecret、app_id、location_id、times_tamp、nonce_str、card_id、card_type的value值进行字符串的字典序排序。
将所有参数字符串拼接成一个字符串进行sha1加密,得到cardSign。
调用config 接口的时候传入参数 debug: true 可以开启debug模式,页面会alert出错误信息。以下为常见错误及解决方法:
invalid url domain当前页面所在域名与使用的appid没有绑定(一个appid可以绑定三个有效域名)。
invalid signature签名错误。建议按如下顺序检查:
确认签名算法正确,可用
页面工具进行校验。
确认config中noncestr, timestamp与用以签名中的对应noncestr, timestamp一致。
确认url是页面完整的url,包括GET参数部分。
确认 config 中的 appid 与用来获取 jsapi_ticket 的 appid 一致。
the permission value is offline verifying这个错误是因为config没有正确执行,或者是调用的JSAPI没有传入config的jsApiList参数中。建议按如下顺序检查:
确认config正确通过。
如果是在页面加载好时就调用了JSAPI,则必须写在wx.ready的回调中。
确认config的jsApiList参数包含了这个JSAPI。
permission denied该应用没有权限使用这个JSAPI。
DEMO页面:
示例代码:
备注:链接中包含php、java、nodejs以及python的示例代码供第三方参考,第三方切记要对获取的accesstoken以及jsapi_ticket进行缓存以确保不会触发频率限制。
阅读(...) 评论()

我要回帖

更多关于 android 按纽事件 的文章

 

随机推荐