微信支付发红包接口 demo

时间:2024-03-11 13:57:44

官方开发的demo很多实例都有,唯独没有红包发放的demo 

1.JSapi支付demo(在微信客户端中点击)

2.native支付模式一demo(用微信扫的静态链接二维码)

3.native支付模式二demo(用微信扫的动态链接二维码)

4.支付查询接口demo

5.对账单接口demo

6.退款接口demo

7.退款查询接口demo

官方的 WxPayPubHelper.php 文件添加这个类。

class Sendredpaper_pub extends Wxpay_client_pub {

    function __construct() {
        //设置接口链接
        $this->url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack";
        //设置curl超时时间
        $this->curl_timeout = WxPayConf_pub::CURL_TIMEOUT;
    }

    /**
     * 生成接口参数xml
     */
    function createXml() {
        try
        {
            $this->parameters["nonce_str"]    = $this->createNoncestr();//随机字符串
            $this->parameters[\'mch_billno\']   = WxPayConf_pub::MCHID.date(\'Ymd\').rand(1000000000, 9999999999);
            $this->parameters["mch_id"]       = WxPayConf_pub::MCHID;//商户号
            $this->parameters[\'wxappid\']      = WxPayConf_pub::APPID;//公众账号ID
            $this->parameters[\'nick_name\']    = \'乐享工作室\';
            $this->parameters[\'send_name\']    = \'乐享工作室\';
            $this->parameters[\'re_openid\']    = \'ojRm7uMrkbp5FkfQMl9e6ybruzLY\';//发给谁
            $this->parameters[\'total_amount\'] = \'100\';//付款金额
            $this->parameters[\'min_value\']    = \'100\';//最小红包
            $this->parameters[\'max_value\']    = \'100\';//最大红包
            $this->parameters[\'total_num\']    = \'1\';//最大红包
            $this->parameters[\'wishing\']      = \'感谢您参加猜 灯谜活劢,祝您 元宵节快乐!\';//最大红包
            $this->parameters[\'client_ip\']    = \'59.63.169.42\';//最大红包
            $this->parameters[\'act_name\']     = \'猜灯谜抢红包 活劢\';//最大红包
            $this->parameters[\'remark\']       = \'猜越多得越多, 快来抢!\';//最大红包
            $this->parameters["sign"]         = $this->getSign($this->parameters);//签名
            return $this->arrayToXml($this->parameters);
        } catch (SDKRuntimeException $e) {
            die($e->errorMessage());
        }
    }

    /**
     *     作用:获取结果,使用证书通信
     */
    function getResult() {
        $this->postXmlSSL();
        $this->result = $this->xmlToArray($this->response);
        return $this->result;
    }

}

然后前台调用一下就OK了。