当前位置:首页 > 微商怎么做 > 代理怎么做

微信小程序视频缓存怎么弄

编辑:小飞燕 发布时间:2021-03-18 08:30:51

导语本文整理了全网深受用户关注的个微信小程序视频缓存怎么弄经验知识,可以帮助您全面了解代理怎么做,小白也能成为高手,跟随小编一起来看一看吧!

如果在微信小程序上看到有意思的视频,不能马上分享,比较好缓存。那么如何缓存微信小程序的视频呢?我们来看看。

微信小程序视频缓存分为同步和异步。同步方法有一个成功回调函数,表示数据处理成功后的操作。下面是小程序提供本地缓存操作界面:

插入wx.setstoragewx.setstoragesync

读取wx.getstoragewx.getstoragesync

删除wx . removestoragewx . removestoragesync。

清空wx . clearstoragewx . clearstoragesync。

获取缓存信息wx . getstorageinfowx . getstorageinfosync。

所有以同步结束的方法都是同步方法。同步方法和异步方法的区别是:

同步方法会阻止当前任务,直到同步方法处理返回。

异步方法不会插入当前任务。

微信小程序视频缓存的以下两种方法说明了同步和异步的区别:

小程序首先调用异步方法,然后调用同步方法

页面({

save:函数(e){

console.log('开始保存')

wx.setstorage({

key: 'key1 ',数据: '数据1 ',成功:功能(res){

console.log('异步保存成功')

}

})

wx.setstoragesync('key2 ',' data2 ')

console.log('同步保存成功')

}

})

执行结果:

可以看到同步方法保存成功在异步方法之前,说明异步方法没有阻塞当前任务。

先调用同步方法,再调用异步方法

页面({

save:函数(e){

console.log('开始保存')

wx.setstoragesync('key2 ',' data2 ')

console.log('同步保存成功')

wx.setstorage({

key: 'key1 ',数据: '数据1 ',成功:功能(res){

console.log('异步保存成功')

}

})

}

})

执行结果:

可以看出,异步方法只有在同步方法成功执行后才会被执行。

如果要缓存applet api,系统会提供applet接口wx.getstorageinfo获取相关信息。有了它,小程序开发者可以重新封装现有的小程序api,无论是插入缓存时间还是批量删除,判断缓存大小等等。

比较后一个问题是缓存隔离的级别:

同一个手机的不同小程序在逻辑存储中不是共享缓存,满足应用级隔离。

如果不同的用户扫描代码,同一个手机和同一个小程序不会共享缓存。在目前的测试条件下,是用户级隔离。

同样的手机,同样的小程序,同样的微信用户,前后扫码两次,都是用共享缓存。

同一个手机有同一个小程序,不同微信用户扫码两次切换使用。经过测试,它们属于同一个用户的共享缓存。

目前可以推断,在实机调试的情况下,每个小程序扫描用户都会分配10m的小程序视频本地缓存。

虽然微信对要缓存的视频内存大小有要求,但是实现微信小程序的视频缓存还是挺方便的。如果还是什么都不懂,可以尝试在源代理网络的小程序通道中搜索相关信息。

下面是题目开头的小程序如何实现在线支付。标题到此结束

微信比较近正式开通了小程序支付功能,也就是说用户可以像支付宝app一样使用小程序在线支付,那么如何使用这个功能呢?以下是小程序在线支付的开发流程和注意事项:

1.打开微信支付和微商户号(请在微信小程序商店搜索教程)

2.获取用户的openid

在主页上,我们需要从小程序的客户端js获取当前用户的openid,通过调用wx.login方法获取用户的代码,然后开发者服务器使用登录证书代码获取openid。

wx.login({

成功:功能(res) {

if (res.code) {

//发起网络请求

wx.request({

url : ' https://your websit/onlog in ',方法: '发布',数据: {

代码: res.code

},

成功:功能(res) {

var open id=res . data . open id;

},

fail:函数(err) {

console.log(错误)

}

})

} else {

console.log('获取用户登录态失败!'res.errmsg)

}

}

});

var code=req。param(' code ');

请求({

url : ' https://api。微信。qq。com/sns/jscode 2会话?appid=' appid ' secret=' secret ' js _ code=' code ' grant _ type=authorization _ code ',方法:“获取”

},函数(错误,响应,正文){

if(!err response.statuscode==200) {

json(json。parse(body));

}

});

3.获取预付编号和支付签名验证支付签名

这一步的过程就和服务号里的微信支付过程一样,分为客户端和服务器端

首先来看一下客户端射流研究…

在服务号里,我们是通过如下的代码来调起支付功能

函数jsapicall

{

weixinjsbridge.invoke(

' getbrandwcpayrequest ',{

appid': ' ',//公众号名称,由小程序商家传入

时间戳' : ' ',//时间戳,自1970年以来的秒数

noncestr ' : ' ',//随机串

包' : '预付款_id=',signtype':'md5 ',//微信签名方式:

paysign':'' //微信签名

},

功能(res){

weixinsbridge。日志(res . err _ msg);

if(res . err _ msg==' get _ brand _ wcpay _ request : ok '){

"警报("支付成功!');

}else{

"警报("支付失败!');

}

}

);

}

在小程序里,我们是通过wx.requestpayment方法来调起支付功能,当然在这之前,我们先要获取预付id。

wx.request({

url : ' https://您网站/服务/getpay ',方法: '发布,数据: {

登记号码:登记号码,/*订单号*/

total_fee:total_fee,/*订单金额*/

openid:openid

},

header: {

内容类型' : '应用程序/json '

},

成功:功能(res) {

wx.requestpayment({

timestamp':timestamp,noncestr ' : noncestr,包' : ' prevable _ id=' res . data。prevable _ id,signtype': 'md5 ',paysign ' : res . data。_ paysign js,success':function(res){

控制台。日志(res);

},

fail':function(res){

控制台。日志(' fail : ' json。stringify(res));

}

})

},

fail:函数(错误){

console.log(错误)

}

})

那在服务器端主要要实现的是预付编号的获取和签名支付签名

var预订编号=req。param('订房号码');

var total _ fee=req。param(' total _ fee ');

var open id=req。param(' open id ');

var body='小程序费用说明;

'https://api.mch.weixin.qq.com/pay/unifiedorder';

var formdata=

请求({

url: url,方法: '发布,body: formdata

},函数(错误,响应,正文){

if(!err response.statuscode==200) {

var预付款_id=getxmlnodevalue('预付款' id ',正文。tostring(' utf-8 ');

var tmp=预付费_ id。split('[');

var tmp1=tmp[2].split(']');

//签名

var _paysignjs=paysignjs(appid,mch_id,' prevable _ id=' tmp 1[0],' md5 ',时间戳);

var o={

预付_id: tmp1[0],_paysignjs: _paysignjs

}

res . send(o);

}

});

下面是用到的函数

函数paysignjs(appid,noncestr,package,signtype,timestamp) {

var ret={

appid: appid,pnoncestr: noncestr,package:包,signtype: signtype,timestamp:时间戳

};

var string=raw 1(ret);

string=string ' key=' key

console.log(字符串);

var crypto=require(' crypto ');

返回crypto.createhash('md5 ').更新(字符串",utf8 ").摘要(' hex ');

};

函数raw1(args) {

var keys=object。key(args);

keys=keys.sort

var new args={ };

keys.foreach(function(key) {

new args[key]=args[key];

});

var字符串=

for(var k in newargs) {

string=' k '=' new args[k];

}

string=string。substr(1);

返回字符串;

};

函数paysignjsapi(appid,attach,body,mch_id,nonce_str,notify_url,openid,out_trade_no,spbill_create_ip,total_fee,trade_type) {

var ret={

appid: appid,附件:附件,body:车身

mch_id: mch_id,nonce_str: nonce_str,notify_url: notify_url,openid: openid,out_trade_no: out_trade_no,sp bill _ create _ ip : sp bill _ create _ ip,total_fee: total_fee,贸易类型:贸易类型

};

var string=raw(ret);

string=string ' key=' key

var crypto=require(' crypto ');

返回crypto.createhash('md5 ').更新(字符串",utf8 ").摘要(' hex ');

};

函数原始(args) {

var keys=object。key(args);

keys=keys.sort

var new args={ };

keys.foreach(function(key) {

新参数[键。tolowercase]=args[key];

});

var字符串=

for(var k in newargs) {

string=' k '=' new args[k];

}

string=string。substr(1);

返回字符串;

};

函数getxmlnodevalue(node_name,xml) {

var tmp=xml。拆分(' node _ name ';');

var _tmp=tmp[1].split(');

return _ tmp[0];

}

这样简单3步,小程序的微信支付功能就接上了,就可以使用小程序在线付款了。下面是效果图:

猜你喜欢

代理怎么做热门信息