微信小程序红包开发代码
编辑:小飞燕 发布时间:2021-03-08 08:24:44
逢年过节大家就喜欢用微信发红包,一般都是在微信群抢红包,玩腻了话不妨试一试小程序发红包吧。但是使用小程序红包功能之前你首先要进行微信小程序红包开发,以下是开发代码:
/**
* 微信红包的类
*
*/
wxhongbao类{
private $ mch _ id=' 111111//商户编号写死
private $ wxappid=' 22222222//微信公众号,写死
private $ client _ ip=' 119。29 .80 .114 ';//调用红包接口的主机的ip,服务端ip,写死,即脚本文件所在的互联网协议(互联网协议的缩写)
private $ apikey=' 33333333//支付的秘钥值
private $ total _ num=1;//发放人数。固定值1,不可修改
private $nick_name='微信产品中心公众号;//商家小程序红包名称
private $send_name='微信产品中心公众号;//红包派发者名称
私人$许愿='祝福语;//
private $act_name='红包活动;//活动名称
私人$备注='活动备注;
private $ nonce _ str=
private $ mch _ billno=
private $ re _ openid=//接收方的信息
private $ total _ amount=1;//红包金额,单位分
private $ min _ value=1;//比较小金额
private $ max _ value=1;//根据接口要求,上述3值必须一致
private $符号=//签名在派遣时生成
private $ amt _ type//分裂红包参数,在sendgroup中进行定义,是常量all_rand
//证书,在构造函数中定义,注意!
private $ api client _ cert/=getcwd ./api client _ cert。pem ';
private $ api client _ key/=getcwd ./api client _ key。pem ';
//分享参数
private $ isshare=false//有用?似乎是无用参数,全部都不是必选和互相依赖的参数
private $ share _ content=
private $ share _ url=
private $ share _ imgurl=
private $ wxhb _ inited
private $ api _ hb _ group=' https://api。mch。微信。qq。com/mmpaymktttransfers/sendgrouredpack ';//裂变红包
private $ api _ hb _ single=' https://api。mch。微信。qq。com/mmpaymktttransfers/send repack ';
private $ error=" ok//初始化
/**
* wxhongbao: _ _构造
* 步骤
*新(openid,金额)
* setnickname
* setsend_name
* setwishing
* setact_name
* setremark
*发送
* [url=home.php?mod=space uid=67594]@ return[/url]void
*/
function __construct{
//好像没有什么需要构造函数做的
$ this-;wxhb _ inited=false
$ this-;apiclient_cert=getcwd ./api client _ cert。pem ';
$ this-;apiclient_key=getcwd ./api client _ key。pem ';
}
公共函数错误{
return $ this-;错误;
}
公共函数错误{
return $ this-;犯罪
}
/**
* wxhongbao:newhb
* 构造新红包
* @param mixed $toopenid
* @param混合$金额金额分
* @返回空的
*/
公共功能newhb($toopenid,$amount){
if(!is_numeric($amount)){
$ this-;错误='金额参数错误;
返回;
}elseif($amount100){
$ this-;错误='金额太小;
返回;
} else if($ amount;20000){
$ this-;错误='金额太大;
返回;
}
$ this-;gen _ nonce _ str//构造随机字串
$ this-;gen _ mch _ billno//构造订单号
$ this-;seto penid($太penid);
$ this-;设定金额($ amount);
$ this-;wxhb _ inited=true//标记微信红包已经初始化完毕可以发送
//每次新都要将分享的内容给清空掉,否则会出现残余被引用
$ this-;share _ content=
$ this-;share _ imgurl=
$ this-;share _ url=
}
/**
* wxhongbao:send
* 发出红包
* 构造签名
* 注意第二参数,单发时不要改动!
* @返回布尔$success
*/
公共函数send($ url=' https://api。mch。微信。qq。com/mmpaymktttransfers/senredpack ',$total_num=1){
if(!$ this-;wxhb_inited){
$ this-;错误。='(红包未准备好)';
返回false//未初始化完成
}
$ this-;total _ num=$ total _ num
$ this-;gen _ sign//生成签名
//构造提交的数据
$ xml=$ this-;genxmlparam
//调试
file_put_contents('hbxml.txt ',$ xml);
//提交xml,curl
//$ url='https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack';
$ ch=curl _ init
curl_setopt($ch,curlopt_timeout,10);
curl_setopt($ch,curlopt_returntransfer,1);
curl_setopt($ch,curlopt_url,$ url);
curl_setopt($ch,curlopt_ssl_verifypeer,false);
curl_setopt($ch,curlopt_ssl_verifyhost,false);
curl_setopt($ch,curlopt_sslcerttype,' pem ');
curl_setopt($ch,curlopt_sslcert,$ this-;api client _ cert);
curl_setopt($ch,curlopt_sslkeytype,' pem ');
curl_setopt($ch,curlopt_sslkey,$ this-;api client _ key);
/*
if(count($ a header);=1 ){
curl_setopt($ch,curlopt_httpheader,$ aheader);
}
*/
curl_setopt($ch,curlopt_post,1);
curl_setopt($ch,curlopt _ postfields,$ xml);
$ data=curl _ exec($ ch);
if($data){
curl _ close($ ch);
$ rsxml=simple xml _ load _ string($ data);
if($ rsxml-;return_code=='success' ){
返回真实的
}else{
$ this-;错误=$ rsxml-;return _ msg
返回错误的
}
}else{
$ this-;error=curl _ errno($ ch);
curl _ close($ ch);
返回错误的
}
}
/**
* wxhongbao:sendgroup
* 发送裂变红包,参数为裂变数量
* @param integer $num 3-20
* @返回
*/
公共函数sendgroup($num=3){
$ this-;amt _ type=' all _ rand/$ amt;固定值。发送裂变红包组文档指定参数,随机
return $ this-;发送($ this-;api_hb_group,$ num);
}
公共函数getapisingle{
return $ this-;api _ hb _ single
}
公共函数getapigroup{
return $ this-;api _ hb _ group
}
公共函数setnickname($nick){
$ this-;昵称=$ nick
/p
}
公共函数setsendname($name){
$ this-;send _ name=$ name
}
公共函数setwishing($wishing){
$ this-;许愿=$许愿;
}
/**
* wxhongbao:setactname
* 活动名称
* @param mixed $act
* @返回空的
*/
public function setactname($ act){
$ this-;act _ name=$ act
}
公共函数集备注$(备注){
$ this-;备注=$备注;
}
公共函数setopenid($openid){
$ this-;re _ openid=$ openid
}
/**
* wxhongbao:setamount
* 设置红包金额
* 文档有两处冲突描述
* 一处指金额;=1 (分钱)
* 另一处指金额;=100 20000 [1-200元]
* 有待测试验证!
* @param混合$价格单位分
* @返回空的
*/
公共函数setamount($price){
$ this-;合计_金额=$价格
$ this-;比较小值=$ price
$ this-;比较大值=$ price
}
//以下方法,为设置分裂红包时使用
公共函数sethbminmax($min,$max){
$ this-;min _ value=$ min
$ this-;max _ value=$ max
}
public function setshare($img=' ',$url=' ',$content=''){
//https://mbiz。qlogo。cn/mmbiz/ms1 jado 92 ep4 qno 9 ev 0 rnitptybrzuhjqt 8 oxsscofdxibnwjibaqglpkdaejmia 6 fqtxaxulkba 9 nlfxymwya/0?wx_fmt=png
//http://mp.weixin.qq.com/s?_ _ biz=mza 5 njg 4 ntk3ma==mid=206257621 idx=1sn=56241 da 30 e 384 e 40771065051 e4 aa 6a 8 #路
$ this-;share _ content=$ content
$ this-;share _ imgurl=$ img
$ this-;share _ url=$ url
}
私有函数gen_nonce_str{
$ this-;nonce _ str=strtopol(md5(mt _ rand。时间));//确保不重复而已
}
私有函数gen_sign{
un set($ param);
//其实应该用键重排一次对吧。
$ param[' act _ name ']=$ this-;act _ name//
if($ this-;total_num==1){ //这些是裂变红包用不上的参数,会导致签名错误
$ param[' client _ ip ']=$ this-;client _ ip
$ param[' max _ value ']=$ this-;比较大值
$ param[' min _ value ']=$ this-;比较小值
$ param[' nick _ name ']=$ this-;nick _ name
}
$ param[' mch _ billno ']=$ this-;mch _ billno//
$ param[' mch _ id ']=$ this-;mch _ id//
$ param[' nonce _ str ']=$ this-;nonce _ str//
$ param[' re _ open id ']=$ this-;re _ openid//
$ param[' remote ']=$ this-;备注;//
$ param[' send _ name ']=$ this-;send _ name//
$ param[' total _ amount ']=$ this-;total _ amount//
$ param[' total _ num ']=$ this-;total _ num//
$ param[' wishing ']=$ this-;许愿;//
$ param[' wxappid ']=$ this-;wxappid//
if($ this-;share _ content)$ param[' share _ content ']=$ this-;共享内容(_ c)
if($ this-;share _ imgurl)$ param[' share _ imgurl ']=$ this-;share _ imgurl
if($ this-;share _ url)$ param[' share _ url ']=$ this-;共享url)
if($ this-;amt _ type)$ param[' amt _ type ']=$ this-;amt _ type//
ks ort($ param);//按照键名排序.艹,上面排了我好久
//$ sign _ raw=http _ build _ query($ param).key=' .$ this-;请求
$ sign _ raw=
foreach($ param as $ k=;$v){
$sign_raw .=$k.'=' .$ v
}
$sign_raw .='key=' .$ this-;请求
//file_put_contents('sign.raw ',$ sign _ raw);//调试
$ this-;sign=strtopher(md5($ sign _ raw));
}
/**
* wxhongbao : genxmlparam
* 生成帖子的参数xml数据包
* 注意生成之前各项值要生成,尤其是符号
* @return $xml
*/
公共函数genxmlparam{
$ xml=
返回$ xml
}
/**
* wxhongbao :3360 gen _ mch _ billno
* 商户订单号(每个订单号必须唯*)
组成:mch _ id yyyymmdd 10位一天内不能重复的数字。
接口根据商户订单号支持重入,如出现超时可再调用。
* @返回空的
*/
私有函数gen_mch_billno{
//生成一个长度10,的阿拉伯数字随机字符串
$rnd_num=array('0 ',' 1 ',' 2 ',' 3 ',' 4 ',' 5 ',' 6 ',' 7 ',' 8 ',' 9 ');
$ rndstr=
while(strlen($rndstr)10){
$rndstr .=$ rnd _ num[array _ rand($ rnd _ num)];
}
$ this-;mch _ billno=$ this-;mch_id.date('ymd ').$ rndstr
}
}
?
然后实例化类别:
$ too penid=' asdasdad//接收红包的用户的微信信息
$hb=新wxhongbao
$ hb-;new hb(too penid,1000美元);//10元创建新红包。第二个参数单位是点。注意价值范围1-200元
//以下可选操作,如果没有指定,使用类脚本顶部的默认值
$ hb-;setnickname('土豪股份有限公司');
$ hb-;setsendname('土豪');
$ hb-;setwishing('恭喜发财');
$ hb-;setactname('货币发行活动');
$ hb-;setremark('任性');
//发红包
if(!$ hb-;发送){ //发送错误
echo $ hb-;err
}else{
回显“红包发送成功”;
}
基本上只要有准确的代码和教程,就可以成功开发小程序。小程序代码在上面。具体教程其实很简单。打开小程序开发的页面就可以了。很简单吗?更多相关信息,请关注源社网小节目频道。
这里是标题的开头,微信小程序蓝牙api用户指南,这里是标题的结尾
微信小程序正式开启了小程序的蓝牙功能,这无疑是一个可以直接提升那些技术宅使用小程序体验的功能。那么如何使用微信小程序的蓝牙api呢?下面是小编找到的微信小程序蓝牙api的指南。
由于目前关于蓝牙小程序的信息非常少,但我想让大家快速了解微信小程序蓝牙api可能遇到的问题,小编只能不断聚合蓝牙相关内容供大家参考;
支持公文基础库1.1.0版,需要兼容更低版本
ios微信客户端开始支持6.5.6版,安卓客户端已经支持了
由于微信小程序系统的问题,目前只在mac版本的开发工具上支持蓝牙调试
tip: mac系统可能无法获取广告数据和rssi数据,请使用真实机器调试
由tip: applet developer tool和android获得的deviceid是设备的mac地址,设备在ios上的uuid。因此,deviceid不能硬编码到applet代码中
开发者工具和android获得的deviceid是设备的mac地址,设备在ios上的uuid。因此,deviceid不能硬编码到代码中
tip:并行调用多个读写小程序接口存在读写失败的可能。
tip:读取接口读取的信息需要在onblecharacteristicvaluechange方法注册的回调中获取。
蓝牙错误代码(错误代码)列表错误代码描述备注
0正常
10000没有初始化蓝牙适配器
10001不可用当前的蓝牙适配器不可用
10002没有设备找不到指定的设备
10003连接失败连接失败
10004没有服务找不到指定的服务
10005无特性未找到指定的特性值
10006当前没有断开连接
10007属性不支持当前特征值不支持此操作
10008系统错误所有其他系统报告的异常
10009系统不支持安卓系统是唯*的,当系统版本低于4.3时不支持ble
10010没有描述符找不到指定的描述符
上一篇:微信小程序左右滑动怎么实现
猜你喜欢
-
9个小程序红包技巧1039人喜欢
微信发红包很普遍也很简单,但是微信小程序兴起之后,很多商户开始用微信小程序发红包了,这样也有利于大家对小程序本身的关注,接下来就一起来学习下操作方式吧!登录微信支付商户平台在调用接口前有一些工作需要商户登录微信小程序支付商户平台进行操作,请使用微信…
更新时间:2019-11-09 16:29:18
-
2个微信小程序红包技巧862人喜欢
微信小程序红包功能是什么?小程序为何需要红包功能?有微信用户表示微信小程序红包功能不知道是干什么的,微信小程序为什么会有微信红包的功能,大家请跟着小编往下看吧。微信小程序红包功能是什么?微信有一个神奇的小程序,只要你少开一天车,就能在里面领微信红包,0…
更新时间:2021-01-03 20:41:15
-
微信小程序红包开发代码71人喜欢
逢年过节大家就喜欢用微信发红包,一般都是在微信群抢红包,玩腻了话不妨试一试小程序发红包吧。但是使用小程序红包功能之前你首先要进行微信小程序红包开发,以下是开发代码:*** 微信红包的类…
更新时间:2021-03-08 08:24:44