微信退款

1.首先 我们需要证书
这个事生成证书的连接
2.话不多说 直接上代码

//商家退款接口
    public function unifiedOrder_tuikuan($order_sn,$total_fee,$bossfind,$out_refund_no)
    {
        $this->config['APPID'] = $bossfind['appid'];
        $this->config['MCHID'] = $bossfind['mchid'];
        $this->config['KEY'] = $bossfind['key'];
        $weixinpay_config = $this->config;
        $data = array(
            'appid' => $weixinpay_config['APPID'],
            'mch_id' => $weixinpay_config['MCHID'],
            'nonce_str' => md5(time() . '!@#$%^&*()_+'),
            'notify_url' => $weixinpay_config['NOTIFY_URL_TUIKUAM'],
            'out_trade_no' =>  $order_sn,
            'out_refund_no' =>  $out_refund_no,
            'total_fee' => $total_fee * 100,
            'refund_fee' => $total_fee * 100,
        );

        // 生成签名

        $sign = $this->makeSignss($data,$weixinpay_config['KEY']);
        $data['sign'] = $sign;
        // var_dump($data);exit;
        $xml = $this->toXml_tui($data);
        // var_dump($xml);exit;
        $url = 'https://api.mch.weixin.qq.com/secapi/pay/refund';//接收xml数据的文件
        $header[] = "Content-type: text/xml,charset:utf-8";//定义content-type为xml,注意是数组
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 兼容本地没有指定curl.cainfo路径的错误
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

        //证书的使用
        curl_setopt($ch, CURLOPT_SSLCERTTYPE, 'PEM');
        curl_setopt($ch, CURLOPT_SSLCERT, '/cert/apiclient_cert.pem');
        curl_setopt($ch, CURLOPT_SSLKEYTYPE, 'PEM');
        curl_setopt($ch, CURLOPT_SSLKEY, '/cert/apiclient_key.pem');

        $response = curl_exec($ch);

        if (curl_errno($ch)) {

            // 显示报错信息;终止继续执行
            die(curl_error($ch));
        }

        curl_close($ch);
        $result = $this->toArray($response);
        // 显示错误信息
        if ($result['return_code'] == 'FAIL') {
            die($result['return_msg']);
        }
        
        
        return $result;
    }

你可能感兴趣的:(微信,缓存)