PHP微信提现
1、微信提现到零钱功能既是商户号中"企业付款到零钱"功能,开通链接https://pay.weixin.qq.com/index.php/public/product/detail?pid=5&productType=0
2、微信提现文档:https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2
3、在提现文档中有个参数为appid,如果你是通过微信开放平台授权获得的openid,那么在参数中appid为开放平台应用的appid,如果你是通过微信公众号授权获得的openid,那么参数中appid为公众号的appid。需要自己在代码中做判断。如果不一致,会报错“appid与openid不匹配”。
提现代码如下(TP5):
public function wx_withdrawal(){header('content-type:text/html;charset=utf-8');$mch_appid = "**************"; #appid$key = "**********************************"; #商户key$mchid = "***********"; #商户号$desc='提现';$openid='********************';$check_name='NO_CHECK'; #此参数为不验证真实姓名,如果需要验证真实姓名,请参考微信文档,注意参数排序,否则将报错->签名错误#$re_user_name=''; #微信真实姓名$nonce_str = strtoupper(md5(time()));$partner_trade_no = time().rand(100,999); #订单号$amount = 0.3 * 100; #总金额 最小0.3,最大5000,以分为单位,金额*100$spbill_create_ip = $_SERVER['REMOTE_ADDR'];$www_url = $_SERVER['HTTP_HOST'];$stringA = "amount={$amount}&check_name={$check_name}&desc={$desc}&mch_appid={$mch_appid}&mchid={$mchid}&nonce_str={$nonce_str}&openid={$openid}&partner_trade_no={$partner_trade_no}&spbill_create_ip={$spbill_create_ip}";$stringSignTemp = $stringA."&key=".$key;$sign=strtoupper(md5($stringSignTemp));$postData ="{$amount} {$check_name} {$desc} {$mch_appid} {$mchid} {$nonce_str} {$openid} {$partner_trade_no} {$spbill_create_ip} {$sign} ";$url = 'https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers';$dataxml = postCertXmlCurl($url,$postData); #在这里post请求是要带证书,方法如下if($dataxml['return_code'] == 'SUCCESS' && $dataxml['result_code'] == 'SUCCESS'){#执行提现到账后的逻辑}else{$this->error($dataxml['err_code_des']);}
}function postCertXmlCurl($url,$xml)
{$ch = curl_init();curl_setopt($ch,CURLOPT_URL, $url);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);//严格校验//设置headercurl_setopt($ch, CURLOPT_HEADER, FALSE);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,1);//证书检查curl_setopt($ch,CURLOPT_SSLCERTTYPE,'pem');curl_setopt($ch,CURLOPT_SSLCERT,$_SERVER['DOCUMENT_ROOT'].'/wxcert/apiclient_cert.pem');curl_setopt($ch,CURLOPT_SSLCERTTYPE,'pem');curl_setopt($ch,CURLOPT_SSLKEY,$_SERVER['DOCUMENT_ROOT'].'/wxcert/apiclient_key.pem');// curl_setopt($ch,CURLOPT_SSLCERTTYPE,'pem');// curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).'/cert/rootca.pem');//post提交方式curl_setopt($ch, CURLOPT_POST, TRUE);curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);//运行curl$data = curl_exec($ch);$objectxml = (array)simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA);// $data = $this->xml_to_json($data);return $objectxml;// dump($objectxml);die;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
