微信支付:一个红包可承载多少好听暖心的微信昵称

ThinkPHP整合微信支付之发现金红包 - ThinkPHP框架
大家好,微信支付系列教程四种方式已经结束,如果你以为结束了就错了,有同学跟我提到微信还有红包功能,我开始也没注意这一块,于是看了下微信商户平台上有讲到这一块,微信支付平台上也早就有了,于是趁热打铁,研究了下,继续发出关于微信红包的教程文章。接下来请看微信支付发红包之现金红包教程!现在微信商户可以向指定的openid发送红包,目前红包分两种:现金红包和裂变红包。本教程是关于现金红包的。
在贴代码之前,先讲几个注意点:1.去商户平台里,给你的商户充钱,没钱是发不了红包哒! 2.微信红包需要证书支持,所以请大家到商户平台下去下载好证书后放到安全文件夹下,并且需要在配置文件中指定好证书路径!
step1:老样子,还是介绍配置文件WxPayConf_pub.php,看过之前微信支付教程的同学应该很清楚这一块了,这里我将代码截图出来,配置好后进行下一步!
step2:下载你的证书,放到一个目录下,对应配置文件中,记得这里是绝对路径!
step3:之前的微信支付的demo微信官方已经帮我们写好了WxPayHelper.php这个类库,我们可以很方便的调用就够了,而微信红包目前还没有官方demo,所以这里我们得自己在WxPayHelper.php文件下写自己的红包支付方法:/**
&*&现金红包接口
&*&@author&gaoyl101
class&Redpack_pub&extends&Wxpay_client_pub
&&&&var&$//code码,用以获取openid
&&&&var&$//用户的openid
&&&&function&__construct()
&&&&&&&&//设置接口链接
&&&&&&&&$this-&url&=&&https://api.mch./mmpaymkttransfers/sendredpack&;
&&&&&&&&//设置curl超时时间
&&&&&&&&$this-&curl_timeout&=&WxPayConf_pub::CURL_TIMEOUT;
&&&&&*&生成接口参数xml
&&&&function&createXml()
&&&&&&&&try
&&&&&&&&&&&&//检测必填参数
&&&&&&&&&&&&if($this-&parameters[&mch_billno&]&==&null)
&&&&&&&&&&&&{
&&&&&&&&&&&&&&&&throw&new&SDKRuntimeException(&缺少发红包接口必填参数mch_billno!&.&&br&&);
&&&&&&&&&&&&}elseif($this-&parameters[&nick_name&]&==&null){
&&&&&&&&&&&&&&&&throw&new&SDKRuntimeException(&缺少发红包接口必填参数nick_name!&.&&br&&);
&&&&&&&&&&&&}elseif&($this-&parameters[&send_name&]&==&null&)&{
&&&&&&&&&&&&&&&&throw&new&SDKRuntimeException(&缺少发红包接口必填参数send_name!&.&&br&&);
&&&&&&&&&&&&}elseif&($this-&parameters[&total_amount&]&==&null)&{
&&&&&&&&&&&&&&&&throw&new&SDKRuntimeException(&缺少发红包接口必填参数total_amount!&.&&br&&);
&&&&&&&&&&&&}elseif($this-&parameters[&min_value&]&==&null){
&&&&&&&&&&&&&&&&throw&new&SDKRuntimeException(&缺少发红包接口必填参数min_value!&.&&br&&);
&&&&&&&&&&&&}elseif&($this-&parameters[&max_value&]&==&null&)&{
&&&&&&&&&&&&&&&&throw&new&SDKRuntimeException(&缺少发红包接口必填参数max_value!&.&&br&&);
&&&&&&&&&&&&}elseif&($this-&parameters[&total_num&]&==&null)&{
&&&&&&&&&&&&&&&&throw&new&SDKRuntimeException(&缺少发红包接口必填参数total_num!&.&&br&&);
&&&&&&&&&&&&}elseif&($this-&parameters[&wishing&]&==&null)&{
&&&&&&&&&&&&&&&&throw&new&SDKRuntimeException(&缺少发红包接口必填参数wishing!&.&&br&&);
&&&&&&&&&&&&}elseif&($this-&parameters[&act_name&]&==&null)&{
&&&&&&&&&&&&&&&&throw&new&SDKRuntimeException(&缺少发红包接口必填参数act_name!&.&&br&&);
&&&&&&&&&&&&}elseif&($this-&parameters[&remark&]&==&null)&{
&&&&&&&&&&&&&&&&throw&new&SDKRuntimeException(&缺少发红包接口必填参数remark!&.&&br&&);
&&&&&&&&&&&&}
&&&&&&&&&&&&$this-&parameters[&wxappid&]&=&WxPayConf_pub::APPID;//公众账号ID
&&&&&&&&&&&&$this-&parameters[&mch_id&]&=&WxPayConf_pub::MCHID;//商户号
&&&&&&&&&&&&$this-&parameters[&client_ip&]&=&$_SERVER['REMOTE_ADDR'];//终端ip
&&&&&&&&&&&&$this-&parameters[&nonce_str&]&=&$this-&createNoncestr();//随机字符串
&&&&&&&&&&&&$this-&parameters[&re_openid&]&=&$this-&//用户openid
&&&&&&&&&&&&$this-&parameters[&sign&]&=&$this-&getSign($this-&parameters);//签名
&&&&&&&&&&&&return&&$this-&arrayToXml($this-&parameters);
&&&&&&&&}catch&(SDKRuntimeException&$e)
&&&&&&&&&&&&die($e-&errorMessage());
&&&&function&sendRedpack()
&&&&&&&&$this-&postXmlSSL();
&&&&&&&&$this-&result&=&$this-&xmlToArray($this-&response);
&&&&&&&&return&$this-&
&&&&&*&&&&&作用:生成可以获得code的url
&&&&function&createOauthUrlForCode($redirectUrl)
&&&&&&&&$urlObj[&appid&]&=&WxPayConf_pub::APPID;
&&&&&&&&$urlObj[&redirect_uri&]&=&&$redirectUrl&;
&&&&&&&&$urlObj[&response_type&]&=&&code&;
&&&&&&&&$urlObj[&scope&]&=&&snsapi_base&;
&&&&&&&&$urlObj[&state&]&=&&STATE&.&#wechat_redirect&;
&&&&&&&&$bizString&=&$this-&formatBizQueryParaMap($urlObj,&false);
&&&&&&&&return&&https://open./connect/oauth2/authorize?&.$bizS
&&&&&*&&&&&作用:生成可以获得openid的url
&&&&function&createOauthUrlForOpenid()
&&&&&&&&$urlObj[&appid&]&=&WxPayConf_pub::APPID;
&&&&&&&&$urlObj[&secret&]&=&WxPayConf_pub::APPSECRET;
&&&&&&&&$urlObj[&code&]&=&$this-&
&&&&&&&&$urlObj[&grant_type&]&=&&authorization_code&;
&&&&&&&&$bizString&=&$this-&formatBizQueryParaMap($urlObj,&false);
&&&&&&&&return&&https://api./sns/oauth2/access_token?&.$bizS
&&&&&*&&&&&作用:通过curl向微信提交code,以获取openid
&&&&function&getOpenid()
&&&&&&&&$url&=&$this-&createOauthUrlForOpenid();
&&&&&&&&//初始化curl
&&&&&&&&&&&$ch&=&curl_init();
&&&&&&&&//设置超时
&&&&&&&&curl_setopt($ch,&CURLOP_TIMEOUT,&$this-&curl_timeout);
&&&&&&&&curl_setopt($ch,&CURLOPT_URL,&$url);
&&&&&&&&curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
&&&&&&&&curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
&&&&&&&&curl_setopt($ch,&CURLOPT_HEADER,&FALSE);
&&&&&&&&curl_setopt($ch,&CURLOPT_RETURNTRANSFER,&TRUE);
&&&&&&&&//运行curl,结果以jason形式返回
&&&&&&&&$res&=&curl_exec($ch);
&&&&&&&&curl_close($ch);
&&&&&&&&//取出openid
&&&&&&&&$data&=&json_decode($res,true);
&&&&&&&&$this-&openid&=&$data['openid'];
&&&&&&&&return&$this-&
&&&&&*&&&&&作用:设置code
&&&&function&setCode($code_)
&&&&&&&&$this-&code&=&$code_;
}其实这里的代码我做的并不是很好,我并没有封装,因为做裂变红包也会用到相似的代码,这里做demo我就先不改了,有兴趣的朋友可以在此基础上继续晚上!上面的代码就是我们要用到的工具类,把他放在WxPayHelper.php最下面就可以了!
step4:创建控制器WxCashRedPackController
控制器中的代码:
1.引入WxPayHelper.php类库/**
&&&&&*&初始化
&&&&public&function&_initialize()
&&&&&&&&//引入WxPayPubHelper
&&&&&&&&vendor('WxPayPubHelper.WxPayPubHelper');
&&&&}2.创建发送红包方法:sendRedpack,这个方法就是发送红包的具体功能代码!/**
&&&&&*&发送红包
&&&&public&function&sendRedpack()
&&&&&&&&//调用请求接口基类
&&&&&&&&$Redpack&=&new&\Redpack_pub();
&&&&&&&&//=========步骤1:网页授权获取用户openid============
&&&&&&&&//通过code获得openid
&&&&&&&&if&(!isset($_GET['code']))
&&&&&&&&&&&&//触发微信返回code码
&&&&&&&&&&&&$reduct_uri&=&WEB_HOST.&/index.php/Home/WxCashRedPack/sendRedpack&;
&&&&&&&&&&&&$url&=&$Redpack-&createOauthUrlForCode($reduct_uri);
&&&&&&&&&&&&Header(&Location:&$url&);
&&&&&&&&}else
&&&&&&&&&&&&//获取code码,以获取openid
&&&&&&&&&&&&$code&=&$_GET['code'];
&&&&&&&&&&&&$Redpack-&setCode($code);
&&&&&&&&&&&&$openid&=&$Redpack-&getOpenId();
&&&&&&&&//商户订单号
&&&&&&&&$Redpack-&setParameter('mch_billno',&C('WxPayConf_pub.APPID').&static&);
&&&&&&&&//提供方名称
&&&&&&&&$Redpack-&setParameter('nick_name',&&gaoyl101&);
&&&&&&&&//商户名称
&&&&&&&&$Redpack-&setParameter('send_name',&&gaoyl101&);
&&&&&&&&//用户openid
//&&&&&&&&&$Redpack-&setParameter('re_openid',&$parameterValue);
&&&&&&&&//付款金额
&&&&&&&&$Redpack-&setParameter('total_amount',&100);
&&&&&&&&//最小红包金额
&&&&&&&&$Redpack-&setParameter('min_value',&100);
&&&&&&&&//最大红包金额
&&&&&&&&$Redpack-&setParameter('max_value',&100);
&&&&&&&&//红包发放总人数
&&&&&&&&$Redpack-&setParameter('total_num',&1);
&&&&&&&&//红包祝福语
&&&&&&&&$Redpack-&setParameter('wishing',&&现金红包教程祝大家写代码快乐&);
&&&&&&&&//活动名称
&&&&&&&&$Redpack-&setParameter('act_name',&&现金红包教程&);
&&&&&&&&//备注
&&&&&&&&$Redpack-&setParameter('remark',&&现金红包教程祝大家写代码快乐&);
&&&&&&&&//以下是非必填项目
&&&&&&&&//子商户号&&
//&&&&&&&&&$Redpack-&setParameter('sub_mch_id',&$parameterValue);
//&&&&&&&&//商户logo的url
//&&&&&&&&&$Redpack-&setParameter('logo_imgurl',&$parameterValue);
//&&&&&&&&&//分享文案
//&&&&&&&&&$Redpack-&setParameter('share_content',&$parameterValue);
//&&&&&&&&&//分享链接
//&&&&&&&&&$Redpack-&setParameter('share_url',&$parameterValue);
//&&&&&&&&&//分享的图片
//&&&&&&&&&$Redpack-&setParameter('share_imgurl',&$parameterValue);
&&&&&&&&$result&=&$Redpack-&sendRedpack();
&&&&&&&&dump($result);
&&&&}访问这个方法,微信就会发红包啦
在这里我dump了微信发送红包之后返回的结果,下面的业务逻辑就可以根据自己的需求接下去写了,返回值的说明可以看微信红包的接口说明,在微信支付平台上有。
到这里微信红包现金红包代码已经全部结束,功能经过测试已经完成!
下面是成功后的红包截图:
之前的几篇微信支付的教程很多同学看了之后都会遇到问题,并找到我得到了解决,个人认为我发的文章得到了它应有的价值,希望这篇文章也能帮到正在为发送红包而发愁的同学!
有问题请留言,下面还会介绍微信发红包之裂变红包!
微信支付之jsapi:
微信支付教程扫码模式一:
微信支付教程扫码模式二:
微信支付教程刷卡支付:
微信裂变红包教程:
欢迎大家吐槽,转载请说明出处,请支持原创,谢谢!
我们的微信开发群:一群: 二群: 三群:,代码已放在群文件中
欢迎大家加入讨论问题
积分:1613
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。您好,分享的企鹅
微信已开启指纹支付功能 每日限额5千元
》》》相关新闻在苹果公司推出iPhone的指纹验证功能之后,指纹模块逐渐成为标配。继支付宝钱包、京东钱包启用指纹支付之后,近日,微信6.2版本也推出了“指纹支付”功能,配合优化后的收款二维码,拓展微信支付的线下市场。指纹支付不怕偷窥昨天,记者体验了微信“指纹支付”功能。在微信中开通指纹支付功能后,在“钱包”中选择“手机充值”,随后确定充值金额,即可进入支付页面。在支付页面,看见“指纹支付”的字样,选择后,将手指放置在iPhone手机的指纹识别区,也就是手机Home键的位置,仅用几秒便完成了支付过程。有网友体验后表示:“指纹支付除了省去输入多位数密码、更节省时间,免去忘记密码的麻烦外,更重要的是,如果支付时所处环境不能确保隐私,例如在公交车上或旁边有陌生人的环境,指纹支付可以防止输入密码时被旁人偷窥。”关于做指纹支付的原因,微信团队有关负责人称,虽然此前也仅需输入6位密码付款,但仍有一些用户会忘记密码,另外,输入时也存在被偷窥、窃取的可能。如果采用“指纹支付”的话,就具有唯一性、随身性和终身不变的特点,不仅能进一步简化流程,也能提高支付的安全系数。支付额度有限制不过,记者对照了一下,无论是支付宝钱包还是微信,都对指纹支付的额度作出了一定限制。支付宝钱包规定,当付款金额小于或等于5万元/天,才可以用指纹取代支付密码。也就是说,如果一天的付款金额超过这个数字,仍须使用密码支付。微信方面则规定,单个账户日累计额度超过5000元的话,只能用密码支付。尽管当前有不少智能手机已能支持指纹识别,但还有不少手机暂时不支持这一功能。例如,微信的指纹支付主要对接的是iPad mini 3、iPad Air 2、iPhone 5S、iPhone 6、iPhone 6 Plus,iOS 8.0以上系统支持使用,而安卓系统手机现在仅有华为mate7支持使用。不过,后续将逐渐支持其他手机。同时,在微信客户端6.2版本中才能使用。同样,支付宝钱包的指纹支付目前也有手机机型、软件版本等要求。是否存在信息泄露风险?不过,有安全专家告诉记者,苹果公司刚开始做指纹支付的时候,曾被黑客攻击过。“业内人士普遍担心的一个问题是:如果这套系统最终被攻克,导致大面积的指纹信息泄露怎么办?密码被盗了,还可以改,但指纹改不了。所以提供方便的同时,其潜在风险也是业内人士非常关心的。新型支付手段,在安全和方便之间需要一种平衡。”微信方面强调,微信支付的服务器上不会存储用户真实的指纹信息,因此不存在因服务器被攻击,导致大量用户指纹泄露的可能。支付宝钱包也曾作过解释,在和三星合作的指纹支付方案中,所有的指纹数据都被储存在用户的手机中,不会被上传至网络云端,这样可以有效防止服务器被攻击而可能导致的安全事故。即便如此,也有人提出了指纹支付识别率的局限性。有专家说,“手指受伤导致指纹破损、空气过湿等情况,可能会影响到指纹支付的识别。而一些人从事的职业使得双手长期浸泡在水或化学物品中,如洗衣工、厨师、化工厂员工等,也可能偶然出现指纹无法识别的状况。”尽管有局限性,但在业内人士看来,指纹支付将成为越来越多的厂商主流机型的标配。了解更多财经资讯,请点击扫描关注大浙财经官方微信,让您掌握第一手浙江财经资讯。
正文已结束,您可以按alt+4进行评论
相关阅读:
看过本文的人还看了
读完这篇文章后,您心情如何?
[责任编辑:wyeaglechan]
热门搜索:
Copyright & 1998 - 2017 Tencent. All Rights Reserved

我要回帖

更多关于 微信支付现金红包开通 的文章

 

随机推荐