电视摇一摇的余额在哪阻止摇余额红包功能开关在什么地方

热门推荐:
  几个月前的春节,微信红包支撑了微信支付的火箭般崛起;几个月后的今天,微信红包可能再次改写线下商户链接互联网的规则。
  从10月11日开始,微信团队开始推出微信摇一摇“全民摇红包”活动,在指定门店,打开蓝牙,用户通过微信摇一摇周边就可以摇到现金红包(红包由参与活动的商户提供)。活动覆盖国内外160多个城市,3000家门店。为什么一场“全民摇红包”活动,能吸引如此多的商家参与,甚至改写行业规则呢?
  近场服务搭建出的用户线上线下互动新模式
  微信推出的“摇一摇周边”是基于近场服务的线上线下互动新模式。其通过摇一摇手段帮用户搭建了一个完整的消费场景:用户通过摇一摇周边获取红包等奖励,与商户互动,后期到店消费……与用户频繁互动的同时提升商家的用户粘性,收获口碑。
  摇一摇周边,是直接联系商户与人搭建起的近场服务,是移动互联网时代从线上到线下互动的一种新模式。对于线下商户来讲,通过微信摇周边功能轻松与目标群体互动。这种线下连接线下的近场服务模式,相比之前的线上线下互动模式更加高效,并且有可能改变整个行业――摇一摇红包是去平台化的,如果商户能自己招揽客户,对各个O2O平台的依赖性变小,营销变的可控起来,后期商户成为可以更加高效、直接对接用户,而不用通过平台。
  场景化消费,摇一摇周边来自真实的用户需求
  在接受《财经》记者采访时,58同城CEO姚劲波说到,微信支付已经悄无声息地完成了对中国主要线上O2O的长期覆盖。在这个过程中,微信支付发挥的不是平台的价值,而是担任支付工具的角色,用来完成O2O的交易闭环;在支付环节之上的摇一摇红包,则在不断的搭建各种消费场景。
  回顾这半年的微信摇一摇,既有现阶段的摇一摇领取商家红包,这是线下顾客到店消费的场景;摇一摇领取航空延误险,这是出行安保的场景;摇一摇旅游景区获取门票,这是假日旅游的场景;摇一摇获取商家优惠券,这是吸引顾客的商家促销场景。
  对于当下的消费群体来说,越来越接受场景化的消费方式;在当下的时间、当下的地点构成的场景下,产生独特的消费行为。线下用户通过摇一摇能直接触发周边商家,而不是回到线上、定位、搜索、寻找这样一个复杂的过程。摇一摇周边,这是一种线下的、真实的、迫切的需求。
  从连接人到连接设备,践行互联网+的发展
  腾讯公司CEO马化腾说,“互联网+”弯道超车和被超只是一瞬间。在马化腾看来,随着移动互联网的兴起,越来越多的实体、个人、设备都连接在了一起。
  如果之前,移动互联网项目连接的是人与设备(智能手机),那么微信正通过“摇一摇”这个动作连接人与人(消费者与实体商家)。这对于腾讯的意义在于,一方面延伸了连接的维度,另一方面是构造了一个线下的的商业生态――不需要建设线上平台或者自营线下业务,通过摇一摇红包这个简单的动作即可实现线下商户的接入与在线化,最后用微信支付完成闭环,打造生态。
  对于腾讯来说,一个商业生态的价值不言而喻;这个商业生态将进一步达成马化腾对互联网+的预期,互联网不仅是虚拟经济,也成为实体经济不可分割的一部分,每一个细胞都需要与互联网相连。
  作者微信公众号:wenyixiaohu
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
自媒体人,在多家媒体开设有专栏。
知名IT评论人,曾就职于多家知名IT企业,现是科幻星系创建人
未来在这里发声。
新媒体的实践者、研究者和批判者。
立足终端领域,静观科技变化。深入思考,简单陈述。
智能硬件领域第一自媒体。-& 哪里有称心的卡券摇一摇 上饶微信摇红包
哪里有称心的卡券摇一摇 上饶微信摇红包
时间: 来源:装饰E站通 作者: 我要评论(0)
哪里有称心的卡券摇一摇 上饶微信摇红包
江西咔咔喵网络科技有限是一家在网络服务行业领域具有较高声誉的服务型公司,公司以卡券摇一摇为主要业务,奉行机遇与挑战并存,企业目标与个人价值并重的发展理念,力求为想要创业的人带来更多的商机。关注需求、专注服务、执着品质、追求效率是咔咔喵不变的追求。
咔咔喵现有员工数量36人左右,提供的卡券摇一摇深受广大想要创业的人的喜爱与欢迎并且具有能够帮助商家引流,吸粉,免费的广告传播的特色,主要以全国;江西九江共青城;浙江绍兴柯桥区;浙江南湖区为代理加盟服务地区,目前在不少的地方取得了良好的成绩,受到了客户的好评!
继续往下走,瞧瞧更多,值得信赖微信摇周边,服务好的咔咔喵,称心的咔咔喵的信息
咔咔喵提供的卡券摇一摇品牌是来源于南昌。我们主要通过代理的方式为想要创业的人提供收益好、市场大的卡券摇一摇项目,预计回报利率为99.9,服务周期为1月。卡券摇一摇的主要开拓区域是全国,请有意向的朋友注意。此次卡券摇一摇的计划招商数为1000家,加盟名额有限,请速速联系,不要错过此次大好机会。
卡券摇一摇品牌:咔咔喵
服务宗旨:质量是生命、服务是灵魂
服务周期:一年
服务标准:高效务实,脚踏实地,培养和发现创业型人才
付款方式:现结;银行转账;在线支付;以物易物;支付宝;财付通;paypal
成功案例:查看官网或来电咨询
价格:99999元(元)/套
加盟商规划总数:1000家
服务特色:能够帮助商家引流,吸粉,免费的广告传播
项目区域要求:全国
预计回报率:99.9%
如何选择微信摇红包,正规的微信摇红包 想了解其它相关信息,欢迎登录江西咔咔喵网络科技有限公司网站或电询我们相关人员。
咔咔喵的营业时间是7*8小时营业,客户可以在这段时间内通过短信预约的方式预约。我们公司的卡券摇一摇面向区域为全国,预计加盟商的总数规划是1000家。我们还为客户提供了提供免费活动的增值服务。
咔咔喵主要经营卡券摇一摇服务。本公司坚持以人为本的经营理念:“严要求、重品质、高效益的经营原则;负责专业、敬业、诚恳、创新的指导精神;为想要创业的人赢得利润,为公司赢得荣誉。我们诚邀你们的加盟,我们愿与您一起携手共进,共局发展,共创双赢。公司地址:江西省南昌市西湖区滨江一号环球中心2811号,加盟服务热线:8
感谢阅读本文章,我们等待您电话咨询怎么选择微信摇周边,提供微信摇红包,放心的咔咔喵,选择微信摇红包信息
哪里有称心的卡券摇一摇 上饶微信摇红包发布者邀请您:加入装饰互动空间(),马上与百万装友互动,更多专家多维参于互动交流、指导监督;分享、探讨生活经典。
网友评论仅代表其表达个人观点,并不表明装饰E站通同意其观点或证实其描述
fengcaihong
fengcaihong
fengcaihong
网站客服QQ: 电话:5
技术支持:博坛
和100万装友互动学装修今天看啥 热点:
微信摇一摇周边 红包,摇周边红包早上老大扔了个设备来说要做个摇一摇红包& 就上网找了下 强大的度娘都找不到大神们分享出来的源码 只能自己埋头去写写了
微信官方说明如下
摇一摇周边红包接口是为线下商户提供的发红包功能。用户可以在商家门店等线下场所通过摇一摇周边领取商家发放的红包,在线上转发分享无效。
开发者可通过接口开发摇一摇红包功能,特点包括:
用户侧交互流程
红包组件接口调用流程
红包提供商户:红包预下单接口传入的参数wxappid所代表的商户
红包发放商户:调用红包接口创建红包活动、录入红包信息、发放红包的商户公众号所以步骤应该是 ① 创建红包活动 ② 预下单 ③ 录入红包找出来了之前整理的类 在写一下1.创建活动
创建红包活动,设置红包活动有效期,红包活动开关等基本信息,返回活动id
接口调用说明
服务器端调用
http请求方式: POST
URL: https://api./shakearound/lottery/addlotteryinfo?access_token=ACCESSTOKEN&use_template=1&logo_url=LOGO_URL
请求参数说明
参数类型说明
access_token
accesstoken,以参数的形式拼装在url后
use_template
是否使用模板,1:使用,2:不使用,以参数的形式拼装在url后。(模版即交互流程图中的红包加载页,使用模板用户不需要点击可自动打开红包;不使用模版需自行开发HTML5页面,并在页面调用红包jsapi)
使用模板页面的logo_url,不使用模板时可不加。展示在摇一摇界面的消息图标。图片尺寸为120x120。
POST BODY:JSON格式的结构体
参数类型说明
抽奖活动名称(选择使用模板时,也作为摇一摇消息主标题),最长6个汉字,12个英文字母。
抽奖活动描述(选择使用模板时,也作为摇一摇消息副标题),最长7个汉字,14个英文字母。
抽奖开关。0关闭,1开启,默认为1
begin_time
抽奖活动开始时间,unix时间戳,单位秒
expire_time
抽奖活动结束时间,unix时间戳,单位秒,红包活动有效期最长为91天
sponsor_appid
红包提供商户公众号的appid,需与预下单中的公众账号appid(wxappid)一致
红包总数,红包总数是录入红包ticket总数的上限,因此红包总数应该大于等于预下单时红包ticket总数。
红包关注界面后可以跳转到第三方自定义的页面
开发者自定义的key,用来生成活动抽奖接口的签名参数,长度32位。使用方式见sign生成规则
Content-Type: application/json Post Body:
"title": "title",
"desc": "desc",
"onoff": 1,
"begin_time": ,
"expire_time": ,
"sponsor_appid": "wxxxxxxxxxxxxxx",
"total": 10,
"jump_url": JUMP_URL,
"key": "keyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"
返回数据说明
参数类型说明
错误码。0为成功,其他为失败。详细请参考错误码表
lottery_id
生成的红包活动id
生成的模板页面ID
"errcode":0,
"errmsg":"",
"lottery_id":"xxxxxxllllll",
"page_id":1,
* 摇一摇红包 创建活动
* @author jiosen
class addlotteryinfo_pub extends Wxpay_client_pub
var $//code码,用以获取openid
var $//用户的openid
function __construct($access_token,$logo)
//设置接口链接
$this-&url = "https://api./shakearound/lottery/addlotteryinfo?access_token=".$access_token."&use_template=1&logo_url=".$
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数
function createJson()
//检测必填参数
if($this-&parameters["title"] == null)
throw new SDKRuntimeException("缺少抽奖活动名称title!"."&br&");
}elseif ($this-&parameters["desc"] == null ) {
throw new SDKRuntimeException("缺少抽奖活动描述desc!"."&br&");
}elseif ($this-&parameters["begin_time"] == null) {
throw new SDKRuntimeException("缺少活动开始时间 begin_time!"."&br&");
}elseif ($this-&parameters["expire_time"] == null) {
throw new SDKRuntimeException("缺少活动结束时间 expire_time!"."&br&");
}elseif ($this-&parameters["total"] == null) {
throw new SDKRuntimeException("缺少红包总数total!"."&br&");
}elseif ($this-&parameters["jump_url"] == null) {
throw new SDKRuntimeException("缺少红包关注跳转连接jump_url!"."&br&");
}elseif ($this-&parameters["key"] == null) {
throw new SDKRuntimeException("缺少红包key!"."&br&");
$this-&parameters["title"] = urlencode($this-&parameters["title"]);
$this-&parameters["desc"] = urlencode($this-&parameters["desc"]);
$this-&parameters["onoff"] = '1';//开启活动
$this-&parameters["sponsor_appid"] = WxPayConf_pub::APPID;//公众账号ID
//var_dump($this-&parameters);
//echo json_encode($this-&parameters);
json_encode($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
function hbpreorder()
$data = $this-&createJson();
$result = $this-&curl_post($this-&url,urldecode($data));
$result = json_decode($result);
function curl_post($url,$data)
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POST, 1);//发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//Post提交的数据包
$rv = curl_exec($curl);//输出内容
curl_close($curl);
作用:生成可以获得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);
$data = json_decode($res,true);
$this-&openid = $data['openid'];
return $this-&
作用:设置code
function setCode($code_)
$this-&code = $code_;
&要注意提交的数据是json 不是xml
&前端页面随便做一下
$title = $_POST['title'];
$file = $_FILES['img'];
$tools = new Tools(); //这是一个文件上传类 随意选择一样你喜欢的上传方式
$logo_url = $tools-&_upload_award("poll_img", $file, time());
$description = $_POST['description'];
$total = $_POST['total'];
$jump_url = $_POST['jump_url'];
$token = getAccessToken();
//这里是我封装的一个获取 token的 方法
做了时间限制 防止超出调用次数
   $Redpack = new addlotteryinfo_pub($token,SITE_URL.$logo_url);
   $time = time();
   $end = time()+60*24*60*60;//两个月
这里的开始和结束时间我固定了
  $key = $Redpack-&createNoncestr(); //key
 $Redpack-&setParameter('title', $title);
//活动标题
$Redpack-&setParameter('desc', $description);
//活动描述
$Redpack-&setParameter('begin_time', $time);
//开始时间
$Redpack-&setParameter('expire_time', $end);
//结束时间
$Redpack-&setParameter('total', $total);
//红包总数
$Redpack-&setParameter('jump_url', $jump_url);
$Redpack-&setParameter('key', $key);
$result = $Redpack-&hbpreorder();
$result = (array)$
if($result['errcode']==0){
   $lottery_id = $result['lottery_id'];
$page_id = $result['page_id'];
//这里记得存一下数据库;
            
//echo '创建活动失败:'.$result['errmsg'];
//这里是错误提示
设置单个红包的金额,类型等,生成红包信息。预下单完成后,需要在72小时内调用jsapi完成抽红包的操作。(红包过期失效后,资金会退回到商户财付通帐号。)
接口调用说明
服务器端调用
http请求方式: POST
https://api.mch./mmpaymkttransfers/hbpreorder
POST数据格式:XML
需要商户证书
请求参数说明
参数字段是否必须示例值类型说明
随机字符串
5K8264ILTKCH16CQ2502SI8Z
String(32)
随机字符串,不长于32位
C380BEC2BFD727A4B
String(32)
生成签名方式查看签名算法
商户订单号
mch_billno
String(28)
商户订单号(每个订单号必须唯一)组成: mch_id+yyyymmdd+10位一天内不能重复的数字。接口根据商户订单号支持重入, 如出现超时可再调用。
String(32)
红包提供者的商户号(微信支付分配的商户号)
公众账号appid
String(32)
红包提供者公众号的appid,对应头像展示在红包页面
String(32)
红包提供者名称,展示在红包页面
String(16)
NORMAL-普通红包;GROUP-裂变红包(可分享红包给好友,无关注公众号能力)。
total_amount
总付款金额,单位分
红包发放总人数
红包发放总人数,即总共有多少人可以领到该组红包(包括分享者)。普通红包填1,裂变红包必须大于1。
红包金额设置方式
String(32)
红包金额设置方式,只对裂变红包生效。ALL_RAND&全部随机
红包祝福语
感谢您参加猜灯谜活动,祝您元宵节快乐
String(16)
红包祝福语,展示在红包页面
猜灯谜抢红包活动
String(32)
活动名称,在不支持原生红包的微信版本中展示在红包消息
猜越多得越多,快来抢!
String(32)
备注信息,在不支持原生红包的微信版本中展示在红包消息
授权商户号
auth_mchid
String(32)
用于发红包时微信支付识别摇周边红包,所有开发者统一填写摇周边平台的商户号:
授权商户APPID
auth_appid
wxbf42bd79c4391863
String(32)
用于发红包时微信支付识别摇周边红包,所有开发者统一填写摇周边平台的appid:wxbf42bd79c4391863
String(32)
用于管控接口风险。具体值如下:NORMAL&正常情况;IGN_FREQ_LMT&忽略防刷限制,强制发放;IGN_DAY_LMT&忽略单用户日限额 限制,强制发放;IGN_FREQ_DAY_LMT&忽略防刷和单用户日限额限制,强制发放;如无特殊要求,请设为NORMAL。若忽略某项风险控制,可 能造成资金损失,请谨慎使用。
&sign&&![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]&&/sign&
&mch_billno&&![CDATA[6545]]&&/mch_billno&
&mch_id&&![CDATA[]]&&/mch_id&
&wxappid&&![CDATA[wxcbda96de0b165486]]&&/wxappid&
&send_name&&![CDATA[send_name]]&&/send_name&
&hb_type&&![CDATA[NORMAL]]&&/hb_type&
&auth_mchid&&![CDATA[]]&&/auth_mchid&
&auth_appid&&![CDATA[wx7777777]]&&/auth_appid&
&total_amount&&![CDATA[200]]&&/total_amount&
&amt_type&&![CDATA[ALL_RAND]]&&/amt_type&
&total_num&&![CDATA[3]]&&/total_num&
&wishing&&![CDATA[恭喜发财 ]]&&/wishing&
&act_name&&![CDATA[ 新年红包 ]]&&/act_name&
&remark&&![CDATA[新年红包 ]]&&/remark&
&risk_cntl&&![CDATA[NORMAL]]&&/risk_cntl&
&nonce_str&&![CDATA[50780e0cca98c8c8ecaa672e]]&&/nonce_str&
返回数据说明
返回格式为xml
参数字段是否必须示例值类型说明
返回状态码
return_code
String(16)
SUCCESS/FAIL;此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
return_msg
String(128)
返回信息,如非空,为错误原因 签名失败 参数格式校验错误
以下字段在return_code为SUCCESS的时候有返回
参数字段是否必须示例值类型说明
C380BEC2BFD727A4BF3AD6
String(32)
生成签名方式查看 签名算法
result_code
String(16)
SUCCESS/FAIL
String(32)
错误码信息
错误代码描述
err_code_des
String(128)
结果信息描述
以下字段在return_code 和result_code都为SUCCESS的时候有返回
参数字段是否必须示例值类型说明
商户订单号
mch_billno
String(28)
商户订单号(每个订单号必须唯一)组成: mch_id+yyyymmdd+10位一天内不能重复的数字。
String(32)
微信支付分配的商户号
公众账号appid
String(32)
total_amount
总付款金额,单位分
2J6MtR+SlbZ8Ga4EDi64X5
vC4Xv01ofX4uWOqqTc9kGJYhkq5 st5ucrXKxkjnC/UuvLeuhdIfiYg i4hJuJ95qjt9mwxqSBEmjGbZlL+ sqM9upoWsEjup28KPvaVrdao/Hg 6WqyqUL5E2zPHfM1sb1w==
sp_ticket,一个普通红包对应一个ticket
红包订单号
红包内部订单号
红包发放时间
&return_code&&![CDATA[SUCCESS]]&&/return_code&
&return_msg&&![CDATA[发放成功.]]&&/return_msg&
&result_code&&![CDATA[SUCCESS]]&&/result_code&
&err_code&&![CDATA[0]]&&/err_code&
&err_code_des&&![CDATA[发放成功.]]&&/err_code_des&
&mch_billno&&![CDATA[6545]]&&/mch_billno&
&mch_id&&/mch_id&
&wxappid&&![CDATA[wx6fa7e3bab7e15415]]&&/wxappid&
&sp_ticket&&![CDATA[0cca98c8c8e814883]]&&/sp_ticket&
&total_amount&3&/total_amount&
&detail_id&&![CDATA[888]]&&/detail_id&
&send_time&&![CDATA[00]]&&/send_time&
&return_code&&![CDATA[FAIL]]&&/return_code&
&return_msg&&![CDATA[系统繁忙,请稍后再试.]]&&/return_msg&
&result_code&&![CDATA[FAIL]]&&/result_code&
&err_code&&![CDATA[]]&&/err_code&
&err_code_des&&![CDATA[系统繁忙,请稍后再试.]]&&/err_code_des&
&mch_billno&&![CDATA[6542]]&&/mch_billno&
&mch_id&&/mch_id&
&wxappid&&![CDATA[wx6fa7e3bab7e15415]]&&/wxappid&
&total_amount&3&/total_amount&
* 摇一摇红包预下单
* @author jiosen
class Yhb_pub extends Wxpay_client_pub
var $//code码,用以获取openid
var $//用户的openid
function __construct()
//设置接口链接
$this-&url = "https://api.mch./mmpaymkttransfers/hbpreorder";
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数xml
function createXml()
//检测必填参数
if($this-&parameters["mch_billno"] == null)
throw new SDKRuntimeException("缺少发红包接口必填参数mch_billno!"."&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["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["nonce_str"] = $this-&createNoncestr();//随机字符串
//$this-&parameters["re_openid"] = $this-&//用户openid
$this-&parameters["hb_type"] = 'NORMAL';//红包类型 NORMAL-普通红包;GROUP-裂变红包(可分享红包给好友,无关注公众号能力)。
$this-&parameters["auth_mchid"] = '';//摇周边商户号
$this-&parameters["auth_appid"] = 'wxbf42bd79c4391863';//摇周边 appid
$this-&parameters["risk_cntl"] = 'NORMAL';//风控设置
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$this-&arrayToXml($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
function hbpreorder()
$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_;
&这里需要注意的是& auth_mchid 和 auth_appid 要填摇周边平台给出的appid 和商户号
调用 (这里不贴前端页面了)
$Redpack = new \Yhb_pub();
$Redpack-&setParameter('mch_billno', WxPayConf_pub::MCHID.date('YmdHis').rand());
//商户名称
$Redpack-&setParameter('send_name', "商户名称");
//付款金额
$Redpack-&setParameter('total_amount', 100); //单位分
//红包发放总人数
$Redpack-&setParameter('amt_type', "ALL_RAND");
$Redpack-&setParameter('total_num', 1);
//红包祝福语
$Redpack-&setParameter('wishing', "摇一摇送红包");
//活动名称
$Redpack-&setParameter('act_name', "摇一摇送红包");
$Redpack-&setParameter('remark', "摇一摇送红包 备注");
$result = $Redpack-&hbpreorder();
if($result[''])
3.录入红包
在调用"创建红包活动"接口之后,调用此接口录入红包信息。注意,此接口每次调用,都会向某个活动新增一批红包信息,如果红包数少于100 个,请通过一次调用添加所有红包信息。如果红包数大于100,可以多次调用接口添加。请注意确保多次录入的红包ticket总的数目不大于创建该红包活动 时设置的total值。
接口调用说明
服务器端调用
http请求方式: POST
URL:https://api./shakearound/lottery/setprizebucket?access_token=ACCESSTOKEN
请求参数说明
参数类型说明
access_token
accesstoken,以参数的形式拼装在url后
POST BODY:JSON格式的结构体
参数类型说明
lottery_id
红包抽奖id,来自addlotteryinfo返回的lottery_id
红包提供者的商户号,,需与预下单中的商户号mch_id一致
sponsor_appid
红包提供商户公众号的appid,需与预下单中的公众账号appid(wxappid)一致
prize_info_list
红包ticket列表,如果红包数较多,可以一次传入多个红包,批量调用该接口设置红包信息。每次请求传入的红包个数上限为100
预下单时返回的红包ticket,单个活动红包ticket数量上限为100000个,可添加多次。
Content-Type: application/json Post Body:
"lottery_id": "xxxxxxllllll",
"mchid": "",
"sponsor_appid": "wx8888",
"prize_info_list": [
"ticket": "v1|ZiPs2l0hpMBp3uwGI1rwp45vOdz/V/zQ/00jP9MeWT+e47/q1FJjwCIP34frSjzOxAEzJ7k2CtAg1pmcShvkChBWqbThxPm6MBuzceoHtj79iHuHaEn0WAO+j4sXnXnbGswFOlDYWg1ngvrRYnCY3g=="
"ticket": "v1|fOhNUTap1oepSm5ap0hx1gmATM\/QX\/xn3sZWL7K+5Z10sbV5\/mZ4SwxwxbK2SPV32eLRvjd4ww1G3H5a+ypqRrySi+4oo97y63KoEQbRCPjbkyQBY8AYVyvD40V2b9slTQCm2igGY98mPe+VxZiayQ=="
返回数据说明
参数类型说明
错误码。0为成功,其他为失败。详细请参考错误码表
repeat_ticket_list
重复使用的ticket列表,如为空,将不返回
expire_ticket_list
过期的ticket列表,如为空,将不返回
invalid_amount_ticket_list
金额不在大于1元,小于1000元的ticket列表,如为空,将不返回
success_num
成功录入的红包数量
wrong_authmchid_ticket_list
原因:生成红包的时候,授权商户号auth_mchid和auth_appid没有写摇周边的商户号
invalid_ticket_list
ticket解析失败,可能有错别字符或不完整
"errcode":0,
"errmsg":"",
"repeat_ticket_list":[
"ticket": "v1|ZiPs2l0hpMBp3uwGI1rwp45vOdz/V/zQ/00jP9MeWT+e47/q1FJjwCIP34frSjzOxAEzJ7k2CtAg1pmcShvkChBWqbThxPm6MBuzceoHtj79iHuHaEn0WAO+j4sXnXnbGswFOlDYWg1ngvrRYnCY3g=="
"ticket":"v1|ZiPs2l0zzXCsdfwe45dxCdHiukOdz/V/zQ/89xcnC5XnT+e47/q1FJjwCO4frSjzOxAEzJ7k2CtAg1pmcShvkChBWzc45dDGC32Dcxx4DGxczjDCGsdjowe9iHuaEn0WAO+GswFOlDYWg1ngvrRYnCY3g=="
"success_num":100
* 摇一摇红包 录入红包
* @author jiosen
class lottery_pub extends Wxpay_client_pub
var $//code码,用以获取openid
var $//用户的openid
function __construct($access_token)
//设置接口链接
$this-&url = "https://api./shakearound/lottery/setprizebucket?access_token=".$access_
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数
function createJson()
//检测必填参数
if($this-&parameters["lottery_id"] == null)
throw new SDKRuntimeException("缺少抽奖活动id lottery_id !"."&br&");
}else if(empty($this-&parameters["prize_info_list"])){
throw new SDKRuntimeException("缺少抽奖活动红包 prize_info_list !"."&br&");
$this-&parameters["mchid"] = WxPayConf_pub::MCHID;//授权商户号
$this-&parameters["sponsor_appid"] = WxPayConf_pub::APPID;//授权上号appid
json_encode($this-&parameters);
//echo json_encode($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
function setJsonArray($parameter, $parameterValue){
$this-&parameters[$this-&trimString($parameter)] = $parameterV
function hbpreorder()
$data = $this-&createJson();
$result = $this-&curl_post($this-&url,$data);
$result = json_decode($result);
function curl_post($url,$data)
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POST, 1);//发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//Post提交的数据包
$rv = curl_exec($curl);//输出内容
curl_close($curl);
作用:生成可以获得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_;
         $token = getAccessToken();    $Redpack = new \lottery_pub($token);    $lottery_id = ''; //这里读取数据库取出创建活动时返回的 lottery_id
$Redpack-&setParameter('lottery_id', $lottery_id);
$prize_info_list =array(array('ticket'=&'这里取出预下单返回的sp_ticket'));
$Redpack-&setJsonArray('prize_info_list', $prize_info_list);
$Redpack-&hbpreorder();
抢红包页面& php
function getshakeinfo($access_token,$ticket){
$getshakeinfourl='https://api./shakearound/user/getshakeinfo?access_token='.$access_
if($access_token){
$data=array('ticket' =&$ticket);
$rd=$this-&curl_post($getshakeinfourl,json_encode($data));
$jo=json_decode($rd);
echo 'access_token null';
     $ticket=$_GET['ticket'];//获叏设备信息,包括 U UID 、 major 、 minor ,以及距离、 openID 等信息
     $token = getAccessToken();
$shake=getshakeinfo($token,$ticket);
$openid=$shake-&data-&
$jsapi = new Common_util_pub();
$noncestr = $jsapi-&createNoncestr();
$parameters = array(
'lottery_id' =&'创建活动时候返回的活动ID',
'noncestr'=&$noncestr,
'openid'=&$openid,
$signStr = $jsapi-&formatBizQueryParaMap($parameters,false);
$key = '创建活动时候的key';
$signStr=$signStr."&key=".$
$sign = strtoupper(md5($signStr));
&上一步返回的参数填在抢红包html页面
&script type="text/javascript" src="http://zb./app/shakehb/BeaconShakehbJsBridge.js"&
&script type="text/javascript"&
BeaconShakehbJsBridge.ready(function(){
//alert();
BeaconShakehbJsBridge.invoke('jumpHongbao',{lottery_id:"{$lottery_id}",noncestr:"{$noncestr}",openid:"{$openid}",sign:"{$sign}"});
     
用户进入红包页面时,后台会将一个红包ticket和用户openid绑定,微信会把这个事件推送到开发者填写的URL(登录公众平台进入开发者中心设置)。推送内容包含用户openid,红包活动id,红包ticket、金额以及红包绑定时间。
注:红包绑定用户不等同于用户领取红包。用户进入红包页面后,有可能不拆红包,但该红包ticket已被绑定,不能再被其他用户绑定,过期后会退回商户财付通账户。
推送XML数据包示例
&ToUserName&&![CDATA[toUser]]&&/ToUserName&
&FromUserName&&![CDATA[fromUser]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[event]]&&/MsgType&
&Event&&![CDATA[ShakearoundLotteryBind]]&&/Event&
&LotteryId&&![CDATA[lotteryid]]&&/LotteryId&
&Ticket&&![CDATA[ticket]]&&/Ticket&
&Money&88&/Money&
&BindTime&&/BindTime&
添加事件处理即可
* 事件处理
* @param unknown $object
* @return string
public function handleEvent($object) {
// Event是事件类型(subscribe,LOCATION)
$oneEvent = $object-&E
// EventKey是菜单事件的key值
$key = $object-&EventK
// 关注事件
if ($oneEvent == "subscribe" || $oneEvent == "SCAN") {
if(!empty($object-&Ticket)) {
//扫码事件
//关注事件
}else if($oneEvent=="ShakearoundLotteryBind"){
//添加到数据库
}else if.......其他的事件......
&完毕了.时间比较匆忙 也没时间做优化 大神经过顺便指导12& 我好搓的英文基础
下面贴上完整WxPayPubHelper 集成了所有支付类 配置可用
* 微信支付帮助库
* ====================================================
* 接口分三种类型:
* 【请求型接口】--Wxpay_client_
统一支付接口类--UnifiedOrder
订单查询接口--OrderQuery
退款申请接口--Refund
退款查询接口--RefundQuery
对账单接口--DownloadBill
短链接转换接口--ShortUrl
* 【响应型接口】--Wxpay_server_
通用通知接口--Notify
Native支付&&请求商家获取商品信息接口--NativeCall
* 【其他】
静态链接二维码--NativeLink
JSAPI支付--JsApi
* =====================================================
* 【CommonUtil】常用工具:
trimString(),设置参数时需要用到的字符处理函数
createNoncestr(),产生随机字符串,不长于32位
formatBizQueryParaMap(),格式化参数,签名过程需要用到
getSign(),生成签名
arrayToXml(),array转xml
xmlToArray(),xml转 array
postXmlCurl(),以post方式提交xml到对应的接口url
postXmlSSLCurl(),使用证书,以post方式提交xml到对应的接口url
include_once("SDKRuntimeException.php");
include_once("WxPay.pub.config.php");
* 所有接口的基类
class Common_util_pub
function __construct() {
function trimString($value)
if (null != $value)
if (strlen($ret) == 0)
作用:产生随机字符串,不长于32位
public function createNoncestr( $length = 32 )
$chars = "abcdefghijklmnopqrstuvwxyz";
for ( $i = 0; $i & $ $i++ )
$str.= substr($chars, mt_rand(0, strlen($chars)-1), 1);
作用:格式化参数,签名过程需要使用
function formatBizQueryParaMap($paraMap, $urlencode)
$buff = "";
ksort($paraMap);
foreach ($paraMap as $k =& $v)
if($urlencode)
$v = urlencode($v);
//$buff .= strtolower($k) . "=" . $v . "&";
$buff .= $k . "=" . $v . "&";
if (strlen($buff) & 0)
$reqPar = substr($buff, 0, strlen($buff)-1);
return $reqP
作用:生成签名
public function getSign($Obj)
foreach ($Obj as $k =& $v)
$Parameters[$k] = $v;
//签名步骤一:按字典序排序参数
ksort($Parameters);
$String = $this-&formatBizQueryParaMap($Parameters, false);
//echo '【string1】'.$String.'&/br&';
//签名步骤二:在string后加入KEY
$String = $String."&key=".WxPayConf_pub::KEY;
//echo "【string2】".$String."&/br&";
//签名步骤三:MD5加密
$String = md5($String);
//echo "【string3】 ".$String."&/br&";
//签名步骤四:所有字符转为大写
$result_ = strtoupper($String);
//echo "【result】 ".$result_."&/br&";
return $result_;
作用:array转xml
function arrayToXml($arr)
$xml = "&xml&";
foreach ($arr as $key=&$val)
if (is_numeric($val))
$xml.="&".$key."&".$val."&/".$key."&";
$xml.="&".$key."&&![CDATA[".$val."]]&&/".$key."&";
$xml.="&/xml&";
作用:将xml转为array
public function xmlToArray($xml)
//将XML转为array
$array_data = json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
return $array_
作用:以post方式提交xml到对应的接口url
public function postXmlCurl($xml,$url,$second=30)
//初始化curl
$ch = curl_init();
//设置超时
curl_setopt($ch, CURLOP_TIMEOUT, $second);
//这里设置代理,如果有的话
//curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8');
//curl_setopt($ch,CURLOPT_PROXYPORT, 8080);
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
//设置header
curl_setopt($ch, CURLOPT_HEADER, FALSE);
//要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
//post提交方式
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
//运行curl
$data = curl_exec($ch);
curl_close($ch);
//返回结果
curl_close($ch);
$error = curl_errno($ch);
echo "curl出错,错误码:$error"."&br&";
echo "&a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'&错误原因查询&/a&&/br&";
curl_close($ch);
作用:使用证书,以post方式提交xml到对应的接口url
function postXmlSSLCurl($xml,$url,$second=30)
$ch = curl_init();
//超时时间
curl_setopt($ch,CURLOPT_TIMEOUT,$second);
//这里设置代理,如果有的话
//curl_setopt($ch,CURLOPT_PROXY, '8.8.8.8');
//curl_setopt($ch,CURLOPT_PROXYPORT, 8080);
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);
//设置header
curl_setopt($ch,CURLOPT_HEADER,FALSE);
//要求结果为字符串且输出到屏幕上
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
//设置证书
//使用证书:cert 与 key 分别属于两个.pem文件
//默认格式为PEM,可以注释
curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
curl_setopt($ch,CURLOPT_SSLCERT,WxPayConf_pub::SSLCERT_PATH );
//默认格式为PEM,可以注释
curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
curl_setopt($ch,CURLOPT_SSLKEY, WxPayConf_pub::SSLKEY_PATH);
curl_setopt($ch, CURLOPT_SSLCERT,WxPayConf_pub::SSLCERT_PATH);
curl_setopt($ch, CURLOPT_SSLKEY,WxPayConf_pub::SSLKEY_PATH);
curl_setopt($ch, CURLOPT_CAINFO, WxPayConf_pub::SSLCA_PATH); // CA根证书(用来验证的网站证书是否是CA颁布)
//post提交方式
curl_setopt($ch,CURLOPT_POST, true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);
$data = curl_exec($ch);
//返回结果
if($data){
curl_close($ch);
$error = curl_errno($ch);
echo "curl出错,错误码:$error"."&br&";
echo "&a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'&错误原因查询&/a&&/br&";
curl_close($ch);
作用:打印数组
function printErr($wording='',$err='')
print_r('&pre&');
echo $wording."&/br&";
var_dump($err);
print_r('&/pre&');
* 请求型接口的基类
class Wxpay_client_pub extends Common_util_pub
var $//请求参数,类型为关联数组
public $//微信返回的响应
public $//返回参数,类型为关联数组
var $//接口链接
var $curl_//curl超时时间
作用:设置请求参数
function setParameter($parameter, $parameterValue)
$this-&parameters[$this-&trimString($parameter)] = $this-&trimString($parameterValue);
作用:设置标配的请求参数,生成签名,生成接口参数xml
function createXml()
$this-&parameters["appid"] = WxPayConf_pub::APPID;//公众账号ID
$this-&parameters["mch_id"] = WxPayConf_pub::MCHID;//商户号
$this-&parameters["nonce_str"] = $this-&createNoncestr();//随机字符串
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$this-&arrayToXml($this-&parameters);
作用:post请求xml
function postXml()
$xml = $this-&createXml();
$this-&response = $this-&postXmlCurl($xml,$this-&url,$this-&curl_timeout);
return $this-&
作用:使用证书post请求xml
function postXmlSSL()
$xml = $this-&createXml();
$this-&response = $this-&postXmlSSLCurl($xml,$this-&url,$this-&curl_timeout);
return $this-&
作用:获取结果,默认不使用证书
function getResult()
$this-&postXml();
$this-&result = $this-&xmlToArray($this-&response);
return $this-&
* 统一支付接口类
class UnifiedOrder_pub extends Wxpay_client_pub
function __construct()
//设置接口链接
$this-&url = "https://api.mch./pay/unifiedorder";
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数xml
function createXml()
//检测必填参数
if($this-&parameters["out_trade_no"] == null)
throw new SDKRuntimeException("缺少统一支付接口必填参数out_trade_no!"."&br&");
}elseif($this-&parameters["body"] == null){
throw new SDKRuntimeException("缺少统一支付接口必填参数body!"."&br&");
}elseif ($this-&parameters["total_fee"] == null ) {
throw new SDKRuntimeException("缺少统一支付接口必填参数total_fee!"."&br&");
}elseif ($this-&parameters["notify_url"] == null) {
throw new SDKRuntimeException("缺少统一支付接口必填参数notify_url!"."&br&");
}elseif ($this-&parameters["trade_type"] == null) {
throw new SDKRuntimeException("缺少统一支付接口必填参数trade_type!"."&br&");
}elseif ($this-&parameters["trade_type"] == "JSAPI" &&
$this-&parameters["openid"] == NULL){
throw new SDKRuntimeException("统一支付接口中,缺少必填参数openid!trade_type为JSAPI时,openid为必填参数!"."&br&");
$this-&parameters["appid"] = WxPayConf_pub::APPID;//公众账号ID
$this-&parameters["mch_id"] = WxPayConf_pub::MCHID;//商户号
$this-&parameters["spbill_create_ip"] = $_SERVER['REMOTE_ADDR'];//终端ip
$this-&parameters["nonce_str"] = $this-&createNoncestr();//随机字符串
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$this-&arrayToXml($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
* 获取prepay_id
function getPrepayId()
$this-&postXml();
$this-&result = $this-&xmlToArray($this-&response);
$prepay_id = $this-&result["prepay_id"];
return $prepay_
* 订单查询接口
class OrderQuery_pub extends Wxpay_client_pub
function __construct()
//设置接口链接
$this-&url = "https://api.mch./pay/orderquery";
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数xml
function createXml()
//检测必填参数
if($this-&parameters["out_trade_no"] == null &&
$this-&parameters["transaction_id"] == null)
throw new SDKRuntimeException("订单查询接口中,out_trade_no、transaction_id至少填一个!"."&br&");
$this-&parameters["appid"] = WxPayConf_pub::APPID;//公众账号ID
$this-&parameters["mch_id"] = WxPayConf_pub::MCHID;//商户号
$this-&parameters["nonce_str"] = $this-&createNoncestr();//随机字符串
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$this-&arrayToXml($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
* 退款申请接口
class Refund_pub extends Wxpay_client_pub
function __construct() {
//设置接口链接
$this-&url = "https://api.mch./secapi/pay/refund";
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数xml
function createXml()
//检测必填参数
if($this-&parameters["out_trade_no"] == null && $this-&parameters["transaction_id"] == null) {
throw new SDKRuntimeException("退款申请接口中,out_trade_no、transaction_id至少填一个!"."&br&");
}elseif($this-&parameters["out_refund_no"] == null){
throw new SDKRuntimeException("退款申请接口中,缺少必填参数out_refund_no!"."&br&");
}elseif($this-&parameters["total_fee"] == null){
throw new SDKRuntimeException("退款申请接口中,缺少必填参数total_fee!"."&br&");
}elseif($this-&parameters["refund_fee"] == null){
throw new SDKRuntimeException("退款申请接口中,缺少必填参数refund_fee!"."&br&");
}elseif($this-&parameters["op_user_id"] == null){
throw new SDKRuntimeException("退款申请接口中,缺少必填参数op_user_id!"."&br&");
$this-&parameters["appid"] = WxPayConf_pub::APPID;//公众账号ID
$this-&parameters["mch_id"] = WxPayConf_pub::MCHID;//商户号
$this-&parameters["nonce_str"] = $this-&createNoncestr();//随机字符串
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$this-&arrayToXml($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
作用:获取结果,使用证书通信
function getResult()
$this-&postXmlSSL();
$this-&result = $this-&xmlToArray($this-&response);
return $this-&
* 退款查询接口
class RefundQuery_pub extends Wxpay_client_pub
function __construct() {
//设置接口链接
$this-&url = "https://api.mch./pay/refundquery";
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数xml
function createXml()
if($this-&parameters["out_refund_no"] == null &&
$this-&parameters["out_trade_no"] == null &&
$this-&parameters["transaction_id"] == null &&
$this-&parameters["refund_id "] == null)
throw new SDKRuntimeException("退款查询接口中,out_refund_no、out_trade_no、transaction_id、refund_id四个参数必填一个!"."&br&");
$this-&parameters["appid"] = WxPayConf_pub::APPID;//公众账号ID
$this-&parameters["mch_id"] = WxPayConf_pub::MCHID;//商户号
$this-&parameters["nonce_str"] = $this-&createNoncestr();//随机字符串
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$this-&arrayToXml($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
作用:获取结果,使用证书通信
function getResult()
$this-&postXmlSSL();
$this-&result = $this-&xmlToArray($this-&response);
return $this-&
* 对账单接口
class DownloadBill_pub extends Wxpay_client_pub
function __construct()
//设置接口链接
$this-&url = "https://api.mch./pay/downloadbill";
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数xml
function createXml()
if($this-&parameters["bill_date"] == null )
throw new SDKRuntimeException("对账单接口中,缺少必填参数bill_date!"."&br&");
$this-&parameters["appid"] = WxPayConf_pub::APPID;//公众账号ID
$this-&parameters["mch_id"] = WxPayConf_pub::MCHID;//商户号
$this-&parameters["nonce_str"] = $this-&createNoncestr();//随机字符串
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$this-&arrayToXml($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
作用:获取结果,默认不使用证书
function getResult()
$this-&postXml();
$this-&result = $this-&xmlToArray($this-&result_xml);
return $this-&
* 短链接转换接口
class ShortUrl_pub extends Wxpay_client_pub
function __construct()
//设置接口链接
$this-&url = "https://api.mch./tools/shorturl";
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数xml
function createXml()
if($this-&parameters["long_url"] == null )
throw new SDKRuntimeException("短链接转换接口中,缺少必填参数long_url!"."&br&");
$this-&parameters["appid"] = WxPayConf_pub::APPID;//公众账号ID
$this-&parameters["mch_id"] = WxPayConf_pub::MCHID;//商户号
$this-&parameters["nonce_str"] = $this-&createNoncestr();//随机字符串
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$this-&arrayToXml($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
* 获取prepay_id
function getShortUrl()
$this-&postXml();
$prepay_id = $this-&result["short_url"];
return $prepay_
* 响应型接口基类
class Wxpay_server_pub extends Common_util_pub
public $//接收到的数据,类型为关联数组
var $returnP//返回参数,类型为关联数组
* 将微信的请求xml转换成关联数组,以方便数据处理
function saveData($xml)
$this-&data = $this-&xmlToArray($xml);
function checkSign()
$tmpData = $this-&
unset($tmpData['sign']);
$sign = $this-&getSign($tmpData);//本地签名
if ($this-&data['sign'] == $sign) {
return TRUE;
return FALSE;
* 获取微信的请求数据
function getData()
return $this-&
* 设置返回微信的xml数据
function setReturnParameter($parameter, $parameterValue)
$this-&returnParameters[$this-&trimString($parameter)] = $this-&trimString($parameterValue);
* 生成接口参数xml
function createXml()
return $this-&arrayToXml($this-&returnParameters);
* 将xml数据返回微信
function returnXml()
$returnXml = $this-&createXml();
return $returnX
* 通用通知接口
class Notify_pub extends Wxpay_server_pub
* 请求商家获取商品信息接口
class NativeCall_pub extends Wxpay_server_pub
* 生成接口参数xml
function createXml()
if($this-&returnParameters["return_code"] == "SUCCESS"){
$this-&returnParameters["appid"] = WxPayConf_pub::APPID;//公众账号ID
$this-&returnParameters["mch_id"] = WxPayConf_pub::MCHID;//商户号
$this-&returnParameters["nonce_str"] = $this-&createNoncestr();//随机字符串
$this-&returnParameters["sign"] = $this-&getSign($this-&returnParameters);//签名
return $this-&arrayToXml($this-&returnParameters);
* 获取product_id
function getProductId()
$product_id = $this-&data["product_id"];
return $product_
* 静态链接二维码
class NativeLink_pub
extends Common_util_pub
var $//静态链接参数
var $//静态链接
function __construct()
* 设置参数
function setParameter($parameter, $parameterValue)
$this-&parameters[$this-&trimString($parameter)] = $this-&trimString($parameterValue);
* 生成Native支付链接二维码
function createLink()
if($this-&parameters["product_id"] == null)
throw new SDKRuntimeException("缺少Native支付二维码链接必填参数product_id!"."&br&");
$this-&parameters["appid"] = WxPayConf_pub::APPID;//公众账号ID
$this-&parameters["mch_id"] = WxPayConf_pub::MCHID;//商户号
$time_stamp = time();
$this-&parameters["time_stamp"] = "$time_stamp";//时间戳
$this-&parameters["nonce_str"] = $this-&createNoncestr();//随机字符串
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$bizString = $this-&formatBizQueryParaMap($this-&parameters, false);
$this-&url = "weixin://wxpay/bizpayurl?".$bizS
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
* 返回链接
function getUrl()
$this-&createLink();
return $this-&
* JSAPI支付&&H5网页端调起支付接口
class JsApi_pub extends Common_util_pub
var $//code码,用以获取openid
var $//用户的openid
var $//jsapi参数,格式为json
var $prepay_//使用统一支付接口得到的预支付id
var $curl_//curl超时时间
function __construct()
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
作用:生成可以获得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-&
作用:设置prepay_id
function setPrepayId($prepayId)
$this-&prepay_id = $prepayId;
作用:设置code
function setCode($code_)
$this-&code = $code_;
作用:设置jsapi的参数
public function getParameters()
$jsApiObj["appId"] = WxPayConf_pub::APPID;
$timeStamp = time();
$jsApiObj["timeStamp"] = "$timeStamp";
$jsApiObj["nonceStr"] = $this-&createNoncestr();
$jsApiObj["package"] = "prepay_id=$this-&prepay_id";
$jsApiObj["signType"] = "MD5";
$jsApiObj["paySign"] = $this-&getSign($jsApiObj);
$this-&parameters = json_encode($jsApiObj);
return $this-&
* 现金红包接口
* @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()
//检测必填参数
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-&parameters["re_openid"];
//$this-&//用户openid
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$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_;
* 红包支付接口
* @author gaoyl101
class Groupredpack_pub extends Wxpay_client_pub
var $//code码,用以获取openid
var $//用户的openid
function __construct()
//设置接口链接
$this-&url = "https://api.mch./mmpaymkttransfers/sendgroupredpack";
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数xml
function createXml()
//检测必填参数
if($this-&parameters["mch_billno"] == null)
throw new SDKRuntimeException("缺少发红包接口必填参数mch_billno!"."&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["total_num"] == null) {
throw new SDKRuntimeException("缺少发红包接口必填参数total_num!"."&br&");
}elseif ($this-&parameters["amt_type"] == null) {
throw new SDKRuntimeException("缺少发红包接口必填参数amt_type!"."&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["nonce_str"] = $this-&createNoncestr();//随机字符串
$this-&parameters["re_openid"] = $this-&//用户openid
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
$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_;
* 摇一摇红包预下单
* @author jiosen
class Yhb_pub extends Wxpay_client_pub
var $//code码,用以获取openid
var $//用户的openid
function __construct()
//设置接口链接
$this-&url = "https://api.mch./mmpaymkttransfers/hbpreorder";
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数xml
function createXml()
//检测必填参数
if($this-&parameters["mch_billno"] == null)
throw new SDKRuntimeException("缺少发红包接口必填参数mch_billno!"."&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["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["nonce_str"] = $this-&createNoncestr();//随机字符串
//$this-&parameters["re_openid"] = $this-&//用户openid
$this-&parameters["hb_type"] = 'NORMAL';//红包类型 NORMAL-普通红包;GROUP-裂变红包(可分享红包给好友,无关注公众号能力)。
$this-&parameters["auth_mchid"] = '';//摇周边商户号
$this-&parameters["auth_appid"] = 'wxbf42bd79c4391863';//摇周边 appid
$this-&parameters["risk_cntl"] = 'NORMAL';//风控设置
$this-&parameters["sign"] = $this-&getSign($this-&parameters);//签名
//echo json_encode($this-&parameters);
$this-&arrayToXml($this-&parameters);
//echo $this-&parameters["auth_appid"].'--'.$this-&parameters["auth_mchid"];
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
function hbpreorder()
$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_;
* 摇一摇红包 创建活动
* @author jiosen
class addlotteryinfo_pub extends Wxpay_client_pub
var $//code码,用以获取openid
var $//用户的openid
function __construct($access_token,$logo)
//设置接口链接
$this-&url = "https://api./shakearound/lottery/addlotteryinfo?access_token=".$access_token."&use_template=1&logo_url=".$
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数
function createJson()
//检测必填参数
if($this-&parameters["title"] == null)
throw new SDKRuntimeException("缺少抽奖活动名称title!"."&br&");
}elseif ($this-&parameters["desc"] == null ) {
throw new SDKRuntimeException("缺少抽奖活动描述desc!"."&br&");
}elseif ($this-&parameters["begin_time"] == null) {
throw new SDKRuntimeException("缺少活动开始时间 begin_time!"."&br&");
}elseif ($this-&parameters["expire_time"] == null) {
throw new SDKRuntimeException("缺少活动结束时间 expire_time!"."&br&");
}elseif ($this-&parameters["total"] == null) {
throw new SDKRuntimeException("缺少红包总数total!"."&br&");
}elseif ($this-&parameters["jump_url"] == null) {
throw new SDKRuntimeException("缺少红包关注跳转连接jump_url!"."&br&");
}elseif ($this-&parameters["key"] == null) {
throw new SDKRuntimeException("缺少红包key!"."&br&");
$this-&parameters["title"] = urlencode($this-&parameters["title"]);
$this-&parameters["desc"] = urlencode($this-&parameters["desc"]);
$this-&parameters["onoff"] = '0';//开启活动
$this-&parameters["sponsor_appid"] = WxPayConf_pub::APPID;//公众账号ID
//var_dump($this-&parameters);
//echo json_encode($this-&parameters);
json_encode($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
function hbpreorder()
$data = $this-&createJson();
$result = $this-&curl_post($this-&url,urldecode($data));
$result = json_decode($result);
function curl_post($url,$data)
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POST, 1);//发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//Post提交的数据包
$rv = curl_exec($curl);//输出内容
curl_close($curl);
作用:生成可以获得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_;
* 摇一摇红包 录入红包
* @author jiosen
class lottery_pub extends Wxpay_client_pub
var $//code码,用以获取openid
var $//用户的openid
function __construct($access_token)
//设置接口链接
$this-&url = "https://api./shakearound/lottery/setprizebucket?access_token=".$access_
//设置curl超时时间
$this-&curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
* 生成接口参数
function createJson()
//检测必填参数
if($this-&parameters["lottery_id"] == null)
throw new SDKRuntimeException("缺少抽奖活动id lottery_id !"."&br&");
}else if(empty($this-&parameters["prize_info_list"])){
throw new SDKRuntimeException("缺少抽奖活动红包 prize_info_list !"."&br&");
$this-&parameters["mchid"] = WxPayConf_pub::MCHID;//授权商户号
$this-&parameters["sponsor_appid"] = WxPayConf_pub::APPID;//授权上号appid
json_encode($this-&parameters);
//echo json_encode($this-&parameters);
}catch (SDKRuntimeException $e)
die($e-&errorMessage());
function setJsonArray($parameter, $parameterValue){
$this-&parameters[$this-&trimString($parameter)] = $parameterV
function hbpreorder()
$data = $this-&createJson();
$result = $this-&curl_post($this-&url,$data);
$result = json_decode($result);
function curl_post($url,$data)
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POST, 1);//发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//Post提交的数据包
$rv = curl_exec($curl);//输出内容
curl_close($curl);
作用:生成可以获得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_;
暂无相关文章
相关搜索:
相关阅读:
相关频道:
&&&&&&&&&&&&&&&&
PHP教程最近更新}

我要回帖

更多关于 摇一摇余额红包在哪里 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信