作者:小飞燕 发布时间:2021-04-18 10:06:35
导语本文整理了全网深受用户关注的个个人微信小程序支付功能怎么开发和使用经验知识,可以帮助您全面了解代理怎么做,小白也能成为高手,跟随小编一起来看一看吧!
个人微信小程序支付功能和支付宝一样方便,而且基于小程序特点,还不占手机内存。所以自推出之后就受到了大家的青睐,对于小程序开发者来说,个人微信小程序支付功能怎样开发呢?以下是开发流程及开发过程中需要注意的地方:
1.开通微信支付和微商户号
这个过程就和开通服务号的微信支付过程一样,没有什么可以说的。
2.获得小程序用户的信息
首页我们需要在小程序的客户端射流研究…中获取当前用户的openid,通过调用wx.login方法可以得到用户的代码,然后开发者服务器使用登录凭证密码获取openid。
wx.login({
成功:功能(res) {
if (res.code) {
//发起网络请求
wx.request({
url : ' https://您网站/在线登录',方法: '发布,数据: {
代码: res.code
},
成功:功能(res) {
var open id=res . data。打开id;
},
fail:函数(错误){
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,noncestr: 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 . split(' node _ name ';');
var _tmp=tmp[1]。split(');
return _ tmp[0];
}
在这个简单的3个步骤中,连接了小程序的微信支付功能。以下是测试的支付效果图
这是题目的开头。微信小程序数据库在哪里?标题到此结束
小程序数据库可以让数据的查询整理更加方便,也可以让数据和操作尽可能的接近,但是很多人反映找不到数据库,那么微信小程序数据库在哪里呢?
以前微信小程序不能直接连接数据库,应该通过小程序接口连接数据库。但是现在小程序的功能已经很完善了,小程序数据库就在小程序的后台。对于用户来说,他们只需要打开小程序就可以使用数据库,但是对于开发人员来说,他们应该更了解小程序数据库的编译。
如何编写“数据库小程序”:
你可能认为只要数据库支持函数语言或者过程语言,就可以写‘数据库小程序’。
这个想法是对的,但是要知道数据库提供的流程语言是比较简单的,包括oracle的pl/sql和postgresql的plpgsql。虽然它们功能强大,但无法与go、java、python、r等常见编程语言相比。尤其是一些非常专业的领域,可能会有非常专业的语言来支持,比如数据分析领域r语言首当其冲。
为了让“数据库小程序”承担真正的小程序功能,只支持数据库的“粗糙”语言似乎是不够的。以下是具体要求:
1支持地球语言
postgresql就是这样一个数据库。理论上,你可以使用小程序开发语言(只要是地球语言)作为它的数据库端编程语言。目前支持的语言好很多,都是以语言插件的形式提供的。
c,plpgsql,plpython,plperl,pltcl,plr,pljava,p8,我能说出名字的编程语言恐怕少了,其实支持的语言数不胜数。
除了编程语言的支持,我们还需要考虑别的吗?
2机箱坚固,扩展能力强(可靠性、ha、性能等。都是机箱技术)
postgresql的开放性不仅表现在编程能力的扩展上,而且在postgresql生态中有很多与业务密切相关的应用,如化学分子、图像、基因数据、文本(包括高效正则化、模糊性、全文检索、文本相似性查询等)的存储和处理。),并访问外部数据源。
一些有趣的小程序数据库特性如下:
1.支持使用c、plpgsql、plpython、plperl、pltcl、plr、pljava、p8等常用语言编写数据库端函数。
同时还可以根据postgresql提供的扩展接口扩展更多的编程语言
https://www.postgresql.org/docs/devel/static/xplang.html
2.数据类型支持丰富,如数组、序列、uuid、jsonb、gis、文本、异构类型、键值类型(hstore)、全文检索、化学、图像、基因、外部数据源等。除了传统的数据类型,还支持用户定义的扩展类型
3.支持btree、hash、gin、gist、spgist、brin、rum和bloom等索引类型。
这些索引可以用来支持常用排序,如大于、小于、等于、任意列等于查询,也可以支持数组和全文搜索匹配、图文相似排序、重叠查询、地理位置操作、knn等异构类型。并支持块级索引(这在物联网场景中非常有用)。
同时允许用户自定义索引界面,支持更多的数据类型。
4.sql语法层支持2021年的大部分sql标准和扩展的sql用法:返回、游标、异步消息、ecpg、窗口查询、递归查询、分组集、向上跳转、跳过锁、adlock和其他语法。
5.连接,支持散列连接,合并连接,嵌套循环连接,6.优化器支持自定义成本因子、cbo、遗传算法等。
7.此外,gpu可以用于加速操作,包括隐式加速或显示加速。
隐式是指数据库本身提供的自定义扫描提供者编程接口,已经实现了插件。
explicit指的是程序语言和cuda的结合,比如pycuda。
8.多核处理也可以方便地用支持并行编程的语言实现(postgresql9.6已经支持内置并行计算(包括全表扫描、散列连接、散列聚合等)。)).
9.通过fdw接口访问几乎所有外部数据
上一篇:微信小程序导航颜色怎么设置
下一篇:小程序数据助手在哪
1073位用户关注
653位用户关注
461位用户关注
831位用户关注
410位用户关注
789位用户关注
89位用户关注
50位用户关注
98位用户关注
86位用户关注
50位用户关注
34位用户关注