微信小程序红包开发代码

作者:小飞燕 发布时间: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没有描述符找不到指定的描述符

查看全文

猜你喜欢

微商怎么找货源

频道查询入口

微商代理怎么做