微信现金红包接口实现红包发放的示例代码分享
微信现金红包接口实现红包发放:
一:流程:【
流程:微信用户访问红包活动页面--》后端判断是否是微信访问的
【否:提示用微信打开连接,是:提示用户是否授权允许,获取其的用户信息【openID等信息】】--》
进入红包活动页面---》用户点击领取红包【判断是否领取过红包】是:【提示已领取过红包】否
--》后端程序调用接口发放红包
--》微信用户在微信中收到红包
--》打开红包
--》红包金额会添加到钱包零钱里
--》完成红包发放。
】
二:要实现微信现金红包接口实现红包发放,首先要符合以下条件:
1.用于发放红包的微信公众号要是服务类型
2.登录微信公众平台官网后,在公众平台后台管理页面 - 开发者中心页,
点击“修改配置”按钮,填写服务器地址(URL)、Token和EncodingAESKey,
其中URL是开发者用来接收微信消息和事件的接口URL。Token可由开发者可以任意填写,
用作生成签名(该Token会和接口URL中包含的Token进行比对,从而验证安全性)。
EncodingAESKey由开发者手动填写或随机生成,将用作消息体加解密密钥。
3.获取access_token:公众号可以使用AppID和AppSecret调用本接口来获取access_token。
【AppID和AppSecret可在微信公众平台官网-开发者中心页中获得(需要已经成为开发者,且帐号没有异常状态)。】
4.微信公众号要开通 “网页授权接口” 用户获取用户基本信息【特别是openID ,发红包时用到】
5.微信公众号的 “微信支付“ 中的 ”商户号” 要开通微信支付【发红包的金额是该支付账户扣款】,开通“现金红包”接口【调用该接口发放红包】。
6. 登陆 ”商户号”【微信公众号分配的商户号。第5 中有说明】 在 “API安全” 中 下载PHP版的 证书 【.pem格式】
以上如描述不清楚,请查看 微信开发者文档 里面有详细的秒杀。
部分代码如下【其余的请查看附件】:
<?php namespace RedClientController; use ThinkController; use RedClientRedpackWeiXinInfo; use RedClientRedpackOauth; use RedClientRedpackSendRedPack; use RedClientRedpackCreateRedPack; class IndexController extends Controller { public function index() { $this->isWeixin();//是否是微信打开 if($this->access) { $this->display(); } else { $class=new Oauth(); $class->index('http://www.myweb.com/index.php/Index/oauth'); } } //获取用户信息 openID public function oauth() { $code=isset($_GET@['code'])?strip_tags(trim($_GET@['code'])):''; $state=isset($_GET@['state'])?strip_tags(trim($_GET@['state'])):''; $class=new Oauth(); $userInfo=$class->getCode($code,$state);//获取用户信息 if(!empty($userInfo['data'])) { //$model=M('wxuser'); //$result=$model->where('openid = "'.$userInfo['data']->openid.'"')->field('openid')->select(); if(empty($result)) { $userInfo['data']=$this->object2array($userInfo['data']); $model->data($userInfo['data'])->add(); } } $userInfo['data']=$this->object2array($userInfo['data']); //创建红包 $class=new CreateRedPack(); $red=$class->redval(); //发红包 $class=new SendRedPack(); $configs=array( 'send_name'=>'红包发送者名称',//红包发送者名称 're_openid'=>$userInfo['data']['openid'],//接受红包的用户,用户在wxappid下的openid 'total_amount'=>$red,//付款金额,单位分 'total_num'=>'1',//红包发放总人数 'wishing'=>'红包祝福语',//红包祝福语 'client_ip'=>$_SERVER['SERVER_ADDR'],//调用接口的机器Ip地址 'act_name'=>'活动名称',//活动名称 'remark'=>'备注信息',// 备注信息 ); $class->setFields($configs); $result=$class->requestXml(); //微信返回信息处理 if(strtoupper($result['return_code'])=='SUCCESS') { if(strtoupper($result['result_code'])=='SUCCESS') { //红包发送成功! $datas['flag']=1; echo $result['err_code_des']; } else { //红包发送失败 $datas['flag']=0; $datas['msg']=$result['err_code_des']; echo $result['err_code_des']; } } else { //红包发送失败 $datas['flag']=0; $datas['msg']=$result['err_code_des']; echo $result['err_code_des']; } } public function isWeixin() { if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) { $this->access=true; } return false; } //类转换成数组 public function object2array($object) { if (is_object($object)) { foreach ($object as $key => $value) { $array[$key] = $value; } } else { $array = $object; } return $array; } } ?>
- 研究SELinux三种策略类型
- SEM广告营销:让您的企业在搜···
- 衢州快手SEO关键词排名费用如···
- 文章内容由IA大数据生成:引领···
- js如何使用针式打印机
- SEO优化论坛:掌握搜索引擎排···
- 手抄报推广普通话,美得简单!
- 改写能提升阿里巴巴流量吗?
- 抖音SEO优化工具,如何提升排···
- 一淘比价支持几天?改写在哪里?
- 解析微信公众平台开发之验证步骤···
- 如果快速安装并使用Larave···
- 用ChainOfCommand···
- 杭州抖音SEO怎么做更有效?
- 在智能云建站平台上,如何设置和···
- 免费服务器部署ChatGPT网···
- win7蓝屏代码3b怎么回事
- AI写出的文章查重率高吗?揭秘···
- “热帖速递,一触即达”
- “智搜快行——速达信息门户”
- iPhone用户如何利用内置应···
- 小程序嵌套VUE页面,如何实现···
- 专业网站优化助力企业网络营销的···
- 建站程序的选择:静态网站生成器···
- 北京网站推广公司如何助力企业快···
- linux如何格式化硬盘
- 提升网站权重,优化排名之道
- linux怎么查看有几张网卡
- AI智能建站工具实战:快速生成···
- ChatGPT已过时?速来体验···
- “精准定位,高效触达,营销方案···
- `form.formName.···
- SEO推广高清图案:如何用视觉···
- 配置Linux系统以支持边缘智···
- 唐山网站建设,专业定制,高效上···
- 百度SEO优化价位解析:如何选···
- 专业做SEO优化价格,如何选择···
- 服务器集群中的资源调度和分配策···
- 株洲百度SEO优化排名,助力企···
- 原创 ···
- ChatGPT进不去?你需要知···
- SEO推广成本高吗?一探究竟!
- 智能建站免费试用指南:高效搭建···
- 影视解说文案生成器2.0破解版···
- app推广赚钱应该怎么做?ap···
- Nginx如何实现基于请求来源···
- SEMSEO:搜索引擎营销与优···
- 做推广还是SEO?选择适合你的···
- git怎么查询上传的代码
- “一触即达,代理新门户”