微信现金红包接口实现红包发放

微信现金红包接口实现红包发放:

一:流程:【

流程:微信用户访问红包活动页面--》后端判断是否是微信访问的

【否:提示用微信打开连接,是:提示用户是否授权允许,获取其的用户信息【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 RedClient\Controller;

use Think\Controller;

use RedClient\Redpack\WeiXinInfo;

use RedClient\Redpack\Oauth;

use RedClient\Redpack\SendRedPack;

use RedClient\Redpack\CreateRedPack;

class IndexController extends Controller

{

public function index()

{

$this->isWeixin();//是否是微信打开

if($this->access)

{

$this->display();

}

else

{

$class=new Oauth();

$class->index(‘http://www.baicimi.com/lottery.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;

}

}

时间: 2024-08-06 09:47:23

微信现金红包接口实现红包发放的相关文章

net版本 微信现金红包接口调用的时候,老是出现签名错误

创建签名  所使用到的几个方法 string url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack"; //随机字符串 string nonce_str = CreateRandomCode(32); //商户号 string mch_id = "111111111111"; //商户订单号 string mch_billno = mch_id + DateTime.Now.ToStri

微信现金红包接口本地测试成功,服务器上失败后的解决办法

本地测试成功后,基本上确定代码还是可用的. 那么本地跟服务器就剩下配置上的区别了. 现金红包接口api 是需要带证书的.所以呢,iis配置有所不同. asp.net 4.0 + iis 8.0  配置环境 1 打开iis   点击 应用程序池 2 点击最右侧的  右上角   设置应用程序池默认设置 3 设置 里面的参数,把 加载用户配置文件 项  改为  true 重启下 iis  再试试  服务器上的接口是否变得正常了呢.

调用微信现金红包接口发放红包

1.通过code获取到用户的openid. 地址: "https://api.weixin.qq.com/sns/oauth2/access_token?appid=wxid&secret=secret&code="            + code + "&grant_type=authorization_code"; 公众号需获取网页授权获取用户基本信息权限. 引导用户到指定的授权页面 例如:https://open.weixin.qq

C#开发微信门户及应用(33)--微信现金红包的封装及使用

我在上篇随笔<C#开发微信门户及应用(32)--微信支付接入和API封装使用>介绍为微信支付的API封装及使用,其中介绍了如何配置好支付环境,并对扫码支付的两种方式如何在C#开发中使用进行了介绍,本随笔继续介绍微信支付的相关内容,介绍其中的微信现金红包和裂变红包的封装和使用. 在上篇随笔后,经过对整个微信框架的完善和重构,已经完成了对微信支付.企业付款.现金红包.代金券及各种卡劵进行了封装完成,并把其中微信支付及摇一摇红包部分等内容作为公众号和企业号通用的部分,这些支付相关的接口在公众号和企业

微信公众号可通过现金红包接口发放微信支付现金红包(附开发教程)

农历新年将至,支付宝红包打了一仗,微信在朋友圈屏蔽了它的分享,但单防守还不行,进攻才是最好的防守.昨日,微信支付现金红包接口正式开放,只需开通微信支付,即可接入现金红包.微信公众号也可以发放现金红包了! 通过现金红包接口,公众号开发者可以策划相关运营活动,向用户发放微信支付现金红包,更好的达到品牌推广及回馈用户的效果. 1.商户调用接口时,通过指定发送对象以及发送金额的方式发放红包,这样的方式,允许商户灵活的应用于各种各样丰富的活动场景 2.领取到红包后,用户的资金直接进入微信零钱,避免繁复的领

浅析微信支付:商户平台开通现金红包、指定用户发放、红包记录查询

本文是[浅析微信支付]系列文章的第十三篇,主要讲解在如何开通商户平台的红包功能和为用户发放红包,以及查询发送红包记录. 浅析微信支付系列已经更新十三篇了哟-,没有看过的朋友们可以看一下哦. 浅析微信支付:(余额提现)企业付款到微信用户零钱或银行卡账户 浅析微信支付:支付验收示例和验收指引 浅析微信支付:如何使用沙箱环境测试 浅析微信支付:申请退款.退款回调接口.查询退款 上一篇文章我们说到,如果有余额提现.返利福利等需求时,就会用到商家向用户付款的操作,基于微信支付,上篇我们说了付款到用户余额和

微信现金红包高级红包接口开发亲测

微信现金红包高级红包接口开发时遇到了不少问题,网上搜索发现 微信现金红包高级红包接口开发注意事项 这篇文章问题总结得很完整,里面给的demo是VS高版本写的,运行过程中还是有些参数问题对于首次调试来说有点难度,还有微信支付现金红包接口 的接口介绍,下面的几个问题特别提出: 商户证书,下载的demo需要证书才能正确运行(可调成服务器模拟发送),而证书需要安装到服务器上,demo是控制台程序,需要的证书可直接安装后使用,其中指出的是方法X509Certificate2 Find()中m_Subjec

微信现金红包高级红包接口开发注意事项

最近因为公司业务需求,接触了微信现金红包高级红包接口,开发时遇到了不少问题,网上搜索发现有很多人也遇到了各种问题,但是没有一个相对完整的解决方案. 在这里我把自己开发过程遇到的问题归纳一下,另外写了一个示例程序方便大家参考. 以下说明是基于Windows Microsoft .Net平台的. 官方文档:点击这里查看官方文档,下面是文档没写,或者一笔略过,但是容易被忽略的注意事项. 1.红包是以分为单位,必须大于100分,小于20000分之间. 2.用户无需关注你的公众号(或服务号,下同),如果关

微信公众平台开发(111) 现金红包、裂变红包、企业付款

keyword:微信公众平台 微信红包 现金红包 裂变红包 企业付款 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/wxpay-mkt-transfer.html  在这篇微信公众平台开发教程中,我们将介绍怎样在实现现金红包.裂变红包.企业付款以及红包交易查询(含现金红包和裂变红包)和企业付款查询的功能. 本文分为下面二个部分: 微信支付接口SDK定义 现金红包.裂变红包.企业付款的调用方法 一.微信红包SDK 现金红包.裂变红包.企业付款本质均为商户