快速建立平台网站开发网站模板设计,团队拓展总结,辽宁建设工程信息网官网查不良行为,论坛网页模板本文实例为大家分享了PHP实现微信提现功能的具体代码#xff0c;供大家参考#xff0c;具体内容如下一、实现功能这几天在小程序里要实现用户从系统中提现到零钱的功能#xff0c;查了一下文档可以使用 企业付款到用户零钱 来实现#xff1b;官方文档注意事项#xff1a;商…本文实例为大家分享了PHP实现微信提现功能的具体代码供大家参考具体内容如下一、实现功能这几天在小程序里要实现用户从系统中提现到零钱的功能查了一下文档可以使用 企业付款到用户零钱 来实现官方文档注意事项商户打款时是从商户可用余额中减钱所以确保商户可用余额充足同时注意官方文档中的付款规则二、PHP实现//封装提现方法function tixian($money){$appid ################;//商户账号appid$secret ##########;//api密码$mch_id #######;//商户号$mch_no #######;$openid123456789;//授权用户openid$arr array();$arr[mch_appid] $appid;$arr[mchid] $mch_id;$arr[nonce_str] ugv::randomid(20);//随机字符串不长于32位$arr[partner_trade_no] 1298016501 . date(Ymd) . rand(10000, 90000) . rand(10000, 90000);//商户订单号$arr[openid] $openid;$arr[check_name] NO_CHECK;//是否验证用户真实姓名这里不验证$arr[amount] $money;//付款金额单位为分$desc ###提现;$arr[desc] $desc;//描述信息$arr[spbill_create_ip] 192.168.0.1;//获取服务器的ip//封装的关于签名的算法$notify new Notify_pub();$notify-weixin_app_config array();$notify-weixin_app_config[KEY] $mch_no;$arr[sign] $notify-getSign($arr);//签名$var $notify-arrayToXml($arr);$xml $this-curl_post_ssl(https://api.mch.weixin.qq.com/mmpaymkttransfers/promotion/transfers, $var, 30, array(), 1);$rdata simplexml_load_string($xml, SimpleXMLElement, LIBXML_NOCDATA);$return_code (string)$rdata-return_code;$result_code (string)$rdata-result_code;$return_code trim(strtoupper($return_code));$result_code trim(strtoupper($result_code));if ($return_code SUCCESS $result_code SUCCESS) {$isrr array(conok,error 0,);} else {$returnmsg (string)$rdata-return_msg;$isrr array(error 1,errmsg $returnmsg,);}return json_encode($isrr);}//上个方法中用到的curl_post_ssl()function curl_post_ssl($url, $vars, $second 30, $aHeader array()){$isdir /cert/;//证书位置$ch curl_init();//初始化curlcurl_setopt($ch, CURLOPT_TIMEOUT, $second);//设置执行最长秒数curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上curl_setopt($ch, CURLOPT_URL, $url);//抓取指定网页curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// 终止从服务端进行验证curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);//curl_setopt($ch, CURLOPT_SSLCERTTYPE, PEM);//证书类型curl_setopt($ch, CURLOPT_SSLCERT, $isdir . apiclient_cert.pem);//证书位置curl_setopt($ch, CURLOPT_SSLKEYTYPE, PEM);//CURLOPT_SSLKEY中规定的私钥的加密类型curl_setopt($ch, CURLOPT_SSLKEY, $isdir . apiclient_key.pem);//证书位置curl_setopt($ch, CURLOPT_CAINFO, PEM);curl_setopt($ch, CURLOPT_CAINFO, $isdir . rootca.pem);if (count($aHeader) 1) {curl_setopt($ch, CURLOPT_HTTPHEADER, $aHeader);//设置头部}curl_setopt($ch, CURLOPT_POST, 1);//post提交方式curl_setopt($ch, CURLOPT_POSTFIELDS, $vars);//全部数据使用HTTP协议中的POST操作来发送$data curl_exec($ch);//执行回话if ($data) {curl_close($ch);return $data;} else {$error curl_errno($ch);echo call faild, errorCode:$errorn;curl_close($ch);return false;}}三、补充关于具体签名算法可参考微信官方文档简单示范签名算法//将要发送的数据整理为$dataksort($data);//排序//使用URL键值对的格式(即key1value1key2value2…)拼接成字符串$str;foreach($data as $k$v) {$str.$k..$v.;}//拼接API密钥$str.key.$secrect;$data[sign]md5($str);//加密将数组转换成xml格式(简单方法)//遍历数组方法function arraytoxml($data){$str;foreach($data as $k$v) {$str..$v..$k.;}$str.;return $str;}将xml格式转换为数组function xmltoarray($xml) {//禁止引用外部xml实体libxml_disable_entity_loader(true);$xmlstring simplexml_load_string($xml, SimpleXMLElement, LIBXML_NOCDATA);$val json_decode(json_encode($xmlstring),true);return $val;}以上就是本文的全部内容希望对大家的学习有所帮助也希望大家多多支持脚本之家。