Example #1
0
 public function unbind($params)
 {
     $params = ["mch_id" => $this->getMchid(), "appid" => $this->getAppId(), "plan_id" => $params['plan_id'], "contract_code" => $params['contract_code'], "contract_id" => $params['contract_id'], "contract_termination_remark" => $params['contract_termination_remark'], "version" => self::version];
     $sign = $this->getSign($para);
     $para['sign'] = $sign;
     $xml = Helpers::arrayToXml($para);
     $rst = $this->post(self::pay_base_url, $xml);
     return $rst;
 }
Example #2
0
 /**
  * 使用说明
  * 用于商户对已发放的红包进行查询红包的具体信息,可支持普通红包和裂变包。
  * 接口调用请求说明
  * 请求Url https://api.mch.weixin.qq.com/mmpaymkttransfers/gethbinfo
  * 是否需要证书 是(证书及使用说明详见商户证书)
  * 请求方式 POST
  * 请求参数
  * 字段名 字段 必填 示例值 类型 说明
  * 随机字符串 nonce_str 是 5K8264ILTKCH16CQ2502SI8ZNMTM67VS String(32) 随机字符串,不长于32位
  * 签名 sign 是 C380BEC2BFD727A4B6845133519F3AD6 String(32) 详见签名生成算法
  * 商户订单号 mch_billno 是 10000098201411111234567890 String(28) 商户发放红包的商户订单号
  * 商户号 mch_id 是 10000098 String(32) 微信支付分配的商户号
  * Appid appid 是 wxe062425f740d30d8 String(32) 微信分配的公众账号ID(企业号corpid即为此appId),接口传入的所有appid应该为公众号的appid(在mp.weixin.qq.com申请的),不能为APP的appid(在open.weixin.qq.com申请的)。
  * 订单类型 bill_type 是 MCHT String(32) MCHT:通过商户订单号获取红包信息。
  * 数据示例:
  *
  * <xml>
  * <sign><![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]></sign>
  * <mch_billno><![CDATA[0010010404201411170000046545]]></mch_billno>
  * <mch_id><![CDATA[10000097]]></mch_id>
  * <appid><![CDATA[wxe062425f740c30d8]]></appid>
  * <bill_type><![CDATA[MCHT]]></ bill_type>
  * <nonce_str><![CDATA[50780e0cca98c8c8e814883e5caa672e]]></nonce_str>
  * </xml>
  * 返回参数
  * 字段名 变量名 必填 示例值 类型 说明
  * 返回状态码 return_code 是 SUCCESS String(16) SUCCESS/FAIL
  * 此字段是通信标识,非交易标识,交易是否成功需要查看result_code来判断
  * 返回信息 return_msg 否 签名失败 String(128) 返回信息,如非空,为错误原因
  * 签名失败
  * 参数格式校验错误
  * 以下字段在return_code为SUCCESS的时候有返回
  * 字段名 变量名 必填 示例值 类型 说明
  * 签名 sign 是 C380BEC2BFD727A4B6845133519F3AD6 String(32) 详见签名生成算法
  * 业务结果 result_code 是 SUCCESS String(16) SUCCESS/FAIL
  * 错误代码 err_code 否 SYSTEMERROR String(32) 错误码信息
  * 错误代码描述 err_code_des 否 系统错误 String(128) 结果信息描述
  * 以下字段在return_code 和result_code都为SUCCESS的时候有返回
  *
  * 字段名 变量名 必填 示例值 类型 描述
  * 商户订单号 mch_billno 是 10000098201411111234567890 String(28) 商户使用查询API填写的商户单号的原路返回
  * 商户号 mch_id 是 10000098 String(32) 微信支付分配的商户号
  * 红包单号 detail_id 是 1000000000201503283103439304 String(32) 使用API发放现金红包时返回的红包单号
  * 红包状态 status 是 RECEIVED string(16) SENDING:发放中
  * SENT:已发放待领取
  * FAILED:发放失败
  * RECEIVED:已领取
  * REFUND:已退款
  * 发放类型 send_type 是 API String(32) API:通过API接口发放
  * UPLOAD:通过上传文件方式发放
  * ACTIVITY:通过活动方式发放
  * 红包类型 hb_type 是 GROUP String(32) GROUP:裂变红包
  * NORMAL:普通红包
  * 红包个数 total_num 是 1 int 红包个数
  * 红包金额 total_amount 是 5000 int 红包总金额(单位分)
  * 失败原因 reason 否 余额不足 String(32) 发送失败原因
  * 红包发送时间 send_time 是 2015-04-21 20:00:00 String(32)
  * 红包退款时间 refund_time 否 2015-04-21 23:03:00 String(32) 红包的退款时间(如果其未领取的退款)
  * 红包退款金额 refund_amount 否 8000 Int 红包退款金额
  * 祝福语 wishing 否 新年快乐 String(128) 祝福语
  * 活动描述 remark 否 新年红包 String(256) 活动描述,低版本微信可见
  * 活动名称 act_name 否 新年红包 String(32) 发红包的活动名称
  * 裂变红包领取列表 hblist 否 内容如下表 裂变红包的领取列表
  * 领取红包的Openid openid 是 ohO4GtzOAAYMp2yapORH3dQB3W18 String(32) 领取红包的openid
  * 金额 amount 是 100 int 领取金额
  * 接收时间 rcv_time 是 2015-04-21 20:00:00 String(32) 领取红包的时间
  * 成功示例:
  *
  * <xml>
  * <return_code><![CDATA[SUCCESS]]></return_code>
  * <return_msg><![CDATA[获取成功]]></return_msg>
  * <result_code><![CDATA[SUCCESS]]></result_code>
  * <mch_id>10000098</mch_id>
  * <appid><![CDATA[wxe062425f740c30d8]]></appid>
  * <detail_id><![CDATA[1000000000201503283103439304]]></detail_id>
  * <mch_billno><![CDATA[1000005901201407261446939628]]></mch_billno>
  * <status><![CDATA[RECEIVED]]></status>
  * <send_type><![CDATA[API]]></send_type>
  * <hb_type><![CDATA[GROUP]]></hb_type>
  * <total_num>4</total_num>
  * <total_amount>650</total_amount>
  * <send_time><![CDATA[2015-04-21 20:00:00]]></send_time>
  * <wishing><![CDATA[开开心心]]></wishing>
  * <remark><![CDATA[福利]]></remark>
  * <act_name><![CDATA[福利测试]]></act_name>
  * <hblist>
  * <hbinfo>
  * <openid><![CDATA[ohO4GtzOAAYMp2yapORH3dQB3W18]]></openid>
  * <status><![CDATA[RECEIVED]]></status>
  * <amount>1</amount>
  * <rcv_time><![CDATA[2015-04-21 20:00:00]]></rcv_time>
  * </hbinfo>
  * <hbinfo>
  * <openid><![CDATA[ohO4GtzOAAYMp2yapORH3dQB3W17]]></openid>
  * <status><![CDATA[RECEIVED]]></status>
  * <amount>1</amount>
  * <rcv_time><![CDATA[2015-04-21 20:00:00]]></rcv_time>
  * </hbinfo>
  * <hbinfo>
  * <openid><![CDATA[ohO4GtzOAAYMp2yapORH3dQB3W16]]></openid>
  * <status><![CDATA[RECEIVED]]></status>
  * <amount>1</amount>
  * <rcv_time><![CDATA[2015-04-21 20:00:00]]></rcv_time>
  * </hbinfo>
  * <hbinfo>
  * <openid><![CDATA[ohO4GtzOAAYMp2yapORH3dQB3W15]]></openid>
  * <status><![CDATA[RECEIVED]]></status>
  * <amount>1</amount>
  * <rcv_time><![CDATA[2015-04-21 20:00:00]]></rcv_time>
  * </hbinfo>
  * </hblist>
  * </xml>
  * 失败示例:
  *
  * <xml>
  * <return_code><![CDATA[FAIL]]></return_code>
  * <return_msg><![CDATA[指定单号数据不存在]]></return_msg>
  * <result_code><![CDATA[FAIL]]></result_code>
  * <err_code><![CDATA[SYSTEMERROR]]></err_code>
  * <err_code_des><![CDATA[指定单号数据不存在]]></err_code_des>
  * <mch_id>666</mch_id>
  * <mch_billno><![CDATA[1000005901201407261446939688]]></mch_billno>
  * </xml>
  * 5.错误码
  * 错误代码 描述 解决方案
  * CA_ERROR 请求未携带证书,或请求携带的证书出错 到商户平台下载证书,请求带上证书后重试。
  * SIGN_ERROR 商户签名错误 按文档要求重新生成签名后再重试。
  * NO_AUTH 没有权限 请联系微信支付开通api权限
  * NOT_FOUND 指定单号数据不存在 查询单号对应的数据不存在,请使用正确的商户订单号查询
  * FREQ_LIMIT 受频率限制 请对请求做频率控制
  * XML_ERROR 请求的xml格式错误,或者post的数据为空 检查请求串,确认无误后重试
  * PARAM_ERROR 参数错误 请查看err_code_des,修改设置错误的参数
  * SYSTEMERROR 系统繁忙,请再试。 红包系统繁忙。
  */
 public function gethbinfo($nonce_str, $mch_billno, $bill_type = 'MCHT')
 {
     $postData = array();
     $postData["nonce_str"] = $nonce_str;
     $postData["mch_billno"] = $mch_billno;
     $postData["mch_id"] = $this->getMchid();
     $postData["appid"] = $this->getAppId();
     $postData["bill_type"] = $bill_type;
     $sign = $this->getSign($postData);
     $postData["sign"] = $sign;
     $xml = Helpers::arrayToXml($postData);
     $options = array();
     $options['cert'] = $this->getCert();
     $options['ssl_key'] = $this->getCertKey();
     $rst = $this->post($this->_url . 'mmpaymkttransfers/gethbinfo', $xml, $options);
     return $this->returnResult($rst);
 }
Example #3
0
 /**
  * 现金红包 API接口
  * 发放现金红包
  * 接口说明
  * 用于企业向微信用户个人収现金红包
  * 目前支持向指定微信用户的 openid 収放固定金额红包。
  *
  * 接口调用请求说明
  * 请求 Url https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack
  * 是否需要证书 是(证书及使用说明见 3.2.3 商户证书)
  * 请求方式 POST
  *
  * 请求参数
  * 字段名 字段 必填 示例值 类型 说明
  * 随机字符串nonce_str 是 5K8264ILTKCH16CQ2502SI8ZNMTM67VSString(32)随机字符串, 32位
  * 签名 sign 是 C380BEC2BFD727A4B6845133519F3AD6String(32)生成签名方式查看 3.2.1 节
  * 商户订单号mch_billno 是 10000098201411111234567890String(28)商户订单号(每个订单号必须唯一)组成: mch_id+yyyymmdd+10 位一天内不能重复的数字。接口根据商户订单号支持重入, 如出现超 时可再调用。
  * 商户号 mch_id 是 10000098 String(32)微信支付分配的商户号
  * 子商户号 sub_mch_id 否 10000090 String(32)微信支付分配的子商户号,受理模式下必填
  * 公众账号appid wxappid 是 wx888888888 8888888String(32)商户 appid
  * 提供方名称nick_name 是 天虹百货 String(32)提供方名称
  * 商户名称 send_name 是 天虹百货 String(32)红包収送者名称
  * 用户openid re_openid 是 oxTWIuGaIt6gTKsQRLau2M0yL16EString(32) 接收红包的用户用户在wxappid下的openid
  * 付款金额 total_amount是 1000 int付款金额,单位分
  * 最小红包 min_value 是 1000 int 最小红包金额,单位分金额
  * 最大红包金额 max_value是 1000 int 最大红包金额,单位分( 最 小 金 额 等 于 最 大 金 额 :min_value=max_value =total_amount)
  * 红包収放总人数total_num是 1 int 红包収放总人数total_num=1
  * 红包祝福 wishing是 感谢您参加猜灯谜活劢,祝您元宵节快乐!String(128) 红包祝福诧
  * Ip 地址 client_ip 是 192.168.0.1 String(15)调用接口的机器 Ip 地址
  * 活动名称 act_name是 猜灯谜抢红包活动String(32)活动名称
  * 备注 remark 是 猜越多得越多,快来抢!String(256) 备注信息
  * 商户logo 的url logo_imgurl 否 https://wx.gtimg.com/mch/img/ico-logo.pngString(128)商户logo的url
  * 分享文案share_content否 快来参加猜灯谜活动 String(256)分享文案
  * 分享链接 share_url 否 http://www.qq.com String(128)分享链接
  * 分享的图片share_imgurl否 https://wx.gtimg.com/mch/img/ico-logo.pngString(128)分享的图片url
  * 数据示例:
  * <xml>
  * <sign>![CDATA[E1EE61A91C8E90F299DE6AE075D60A2D]]</sign>
  * <mch_billno>![CDATA[0010010404201411170000046545]]</mch_billno>
  * <mch_id>![CDATA[888]]</mch_id>
  * <wxappid>![CDATA[wxcbda96de0b165486]]</wxappid>
  * <nick_name>![CDATA[nick_name]]</nick_name>
  * <send_name>![CDATA[send_name]]</send_name>
  * <re_openid>![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]</re_openid>
  * <total_amount>![CDATA[200]]</total_amount>
  * <min_value>![CDATA[200]]</min_value>
  * <max_value>![CDATA[200]]</max_value>
  * <total_num>![CDATA[1]]</total_num>
  * <wishing>![CDATA[恭喜发财]]</wishing>
  * <client_ip>![CDATA[127.0.0.1]]</client_ip>
  * <act_name>![CDATA[新年红包]]</act_name>
  * <act_id>![CDATA[act_id]]</act_id>
  * <remark>![CDATA[新年红包]]</remark>
  * <logo_imgurl>![CDATA[https://xx/img/wxpaylogo.png]]</logo_imgurl>
  * <share_content>![CDATA[share_content]]</share_content>
  * <share_url>![CDATA[https://xx/img/wxpaylogo.png]]</share_url>
  * <share_imgurl>![CDATA[https:/xx/img/wxpaylogo.png]]</share_imgurl>
  * <nonce_str>![CDATA[50780e0cca98c8c8e814883e5caa672e]]</nonce_str>
  * </xml>
  * 返回参数
  * 字段名 变量名 必填示例值 类型 说明
  * 返回状态码return_code 是 SUCCESS String(16)SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查看 result_code 来判断
  * 返回信息 return_msg 否 签名失败 String(128)返回信息,如非空,为错误原因 签名失败 参数格式校验错误
  * 以下字段在 return_code 为 SUCCESS 的时候有返回
  * 签名 sign 是 C380BEC2BFD727A4B6845133519F3AD6String(32)生成签名方式查看 2.1 节
  * 业务结果 result_code 是 SUCCESS String(16)SUCCESS/FAIL
  * 错误代码 err_code 否 SYSTEMERRORString(32)错误码信息
  * 错误代码描述err_code_des否 系统错误 String(128)结果信息描述
  * 以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回
  * 商户订单号mch_billno 是 10000098201411111234567890String(28)
  * 商户订单号(每个订单号必须唯一)组成: mch_id+yyyymmdd+10 位一天内不能重复的数字
  * 商户号 mch_id 是 10000098 String(32)微信支付分配的商户号
  * 公众账号appidwxappid 是 wx8888888888888888 String(32) 商户 appid
  * 用户 openid re_openid 是 oxTWIuGaIt6gTKsQRLau2M0yL16E String(32) 接收红包的用户 用户在 wxappid 下的 openid
  * 付款金额 total_amount 是 1000 int 付款金额,单位分
  * 发放成功时间
  * 微信单号
  * 成功示例:
  * <xml>
  * <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[0010010404201411170000046545]]></mch_billno>
  * <mch_id>10010404</mch_id>
  * <wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid>
  * <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>
  * <total_amount>1</total_amount>
  * </xml>
  * 失败示例:
  * <xml>
  * <return_code><![CDATA[FAIL]]></return_code>
  * <return_msg><![CDATA[系统繁忙,请稍后再试.]]></return_msg>
  * <result_code><![CDATA[FAIL]]></result_code>
  * <err_code><![CDATA[268458547]]></err_code>
  * <err_code_des><![CDATA[系统繁忙,请稍后再试.]]></err_code_des>
  * <mch_billno><![CDATA[0010010404201411170000046542]]></mch_billno>
  * <mch_id>10010404</mch_id>
  * <wxappid><![CDATA[wx6fa7e3bab7e15415]]></wxappid>
  * <re_openid><![CDATA[onqOjjmM1tad-3ROpncN-yUfa6uI]]></re_openid>
  * <total_amount>1</total_amount>
  * </xml>
  */
 public function sendredpack($nonce_str, $mch_billno, $nick_name, $send_name, $re_openid, $total_amount, $min_value, $max_value, $total_num, $wishing, $client_ip, $act_id, $act_name, $remark, $logo_imgurl, $share_content, $share_url, $share_imgurl)
 {
     $postData = array();
     $postData["nonce_str"] = $nonce_str;
     $postData["mch_billno"] = $mch_billno;
     $postData["mch_id"] = $this->getMchid();
     $postData["sub_mch_id"] = $this->getSubMchId();
     $postData["wxappid"] = $this->getAppId();
     $postData["nick_name"] = $nick_name;
     $postData["send_name"] = $send_name;
     $postData["re_openid"] = $re_openid;
     $postData["total_amount"] = $total_amount;
     $postData["min_value"] = $min_value;
     $postData["max_value"] = $max_value;
     $postData["total_num"] = $total_num;
     $postData["wishing"] = $wishing;
     $postData["client_ip"] = $client_ip;
     $postData["act_id"] = $act_id;
     $postData["act_name"] = $act_name;
     $postData["remark"] = $remark;
     $postData["logo_imgurl"] = $logo_imgurl;
     $postData["share_content"] = $share_content;
     $postData["share_url"] = $share_url;
     $postData["share_imgurl"] = $share_imgurl;
     $sign = $this->getSign($postData);
     $postData["sign"] = $sign;
     $xml = Helpers::arrayToXml($postData);
     $options = array();
     $options['cert'] = $this->getCert();
     $options['ssl_key'] = $this->getCertKey();
     $rst = $this->post($this->_url . 'mmpaymkttransfers/sendredpack', $xml, $options);
     return $this->returnResult($rst);
 }