QQ技术交流群173683866526474645欢迎加入交流讨论,打广告的一律飞机票退款php代码
?php//+----------------------------------------------------------------------//|Tplay[WEONLYDOWHATISNECESSARY]//+----------------------------------------------------------------------//|Copyright(c)2017http://tplay.pengyichen.comAllrightsreserved.//+----------------------------------------------------------------------//|Licensed(http://www.apache.org/licenses/LICENSE-2.0)//+----------------------------------------------------------------------//|Author:听雨389625819@qq.com//+----------------------------------------------------------------------namespaceappapicontroller;usethinkValidate;useWePayOrder;usethinkDb;classTest{//$config=array(//'appid'='wxb108ecfd7a6a4205',//'app_secret'='7d50b25808df0677d75f47ce68f388bb',//'pay_mchid'='1519396251',//微信支付MCHID商户收款账号//'pay_apikey'='klfdye2rcea0zzeukglx1v1p0k0a3swo',//微信支付KEY////'notify_url'='https://www.mySercver.com/WxApi/Pay/notify',//接收支付状态的连接////微信使用code换取用户openid及session_key的url地址//'login_url'="https://api.weixin.qq.com/sns/jscode2session?".//"appid=wxb108ecfd7a6a4205&secret=7d50b25808df0677d75f47ce68f388bb&js_code=".$js_code."&grant_type=authorization_code",//);publicfunctionttt(){$data=request()-param();$order_sn='sadsadsa23213';$refund_fee=$data['total_fee'];if($refund_fee){$out_trade_no='trade'.time();;//$out_refund_no商户退款单号自定义而已$out_refund_no='refund'.time();//统一下单退款参数构造$unifiedorder=array('appid'='wxb108ecfd7a6a4205','mch_id'='1519396251','nonce_str'=self::getNonceStr(),'out_trade_no'=$out_trade_no,//商户订单号商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|@,且在同一个商户号下唯一。'out_refund_no'=$out_refund_no,//商户退款单号商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|@,同一退款单号多次请求只退一笔。'total_fee'=$total_fee,//订单金额'refund_fee'=intval(floatval($refund_fee)),//退款金额);//returnself::getNonceStr().'---$out_trade_no---'.$out_trade_no.'---$out_refund_no---'.$out_refund_no.'---$total_fee---'.$total_fee.'---$refund_fee---'.$refund_fee;$unifiedorder['sign']=self::makeSign($unifiedorder);return$unifiedorder['sign'];//请求数据$xmldata=self::array2xml($unifiedorder);$opUrl="https://api.mch.weixin.qq.com/secapi/pay/refund";$res=self::curl_post_ssl_refund($opUrl,$xmldata);if(!$res){self::return_err("Can'tconnecttheserver");}$content=self::xml2array($res);if(strval($content['result_code'])=='FAIL'){self::return_err(strval($content['err_code_des']));}if(strval($content['return_code'])=='FAIL'){self::return_err(strval($content['return_msg']));}return'退款成功!';}else{return'不符合退款订单!';}}//---------------------------------------------------------------用到的函数------------------------------------------------------------/此方法是为了进行微信退款操作的专属定制哦(嘁,其实就是照搬了人家官方的PHPDemo代码咯)TODO尤其注意代码中涉及到的"证书使用方式(二选一)"TODO证书的路径要求为服务器中的绝对路径[我的服务器为CentOS6.5]TODO证书是在微信支付开发文档中有所提及,可自行获取保存/protectedfunctioncurl_post_ssl_refund($url,$vars,$second=30,$aHeader=array()){$ch=curl_init();//超时时间curl_setopt($ch,CURLOPT_TIMEOUT,$second);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//这里设置代理,如果有的话//curl_setopt($ch,CURLOPT_PROXY,'10.206.30.98');//curl_setopt($ch,CURLOPT_PROXYPORT,8080);curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);//TODO以下两种方式需选择一种/---------第一种方法,cert与key分别属于两个.pem文件--------------------------------///默认格式为PEM,可以注释//curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');curl_setopt($ch,CURLOPT_SSLCERT,'/mnt/www/Public/certxxxxxxxxxxxxxxxxxxxx755/apiclient_cert.pem');//默认格式为PEM,可以注释//curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');curl_setopt($ch,CURLOPT_SSLKEY,'/mnt/www/Public/certxxxxxxxxxxxxxxxxxxxx755/apiclient_key.pem');/补充当找不到ca根证书的时候还需要rootca.pem文件TODO注意,微信给出的压缩包中,有提示信息:由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书,2018年3月6日后,不再提供CA证书文件(rootca.pem)下载///curl_setopt($ch,CURLOPT_CAINFO,'/mnt/www/Public/certxxxxxxxxxxxxxxxxxxxx755/rootca.pem');/----------第二种方式,两个文件合成一个.pem文件----------------------------------------///curl_setopt($ch,CURLOPT_SSLCERT,getcwd().'/all.pem');if(count($aHeader)=1){curl_setopt($ch,CURLOPT_HTTPHEADER,$aHeader);}curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_POSTFIELDS,$vars);$data=curl_exec($ch);if($data){curl_close($ch);return$data;}else{$error=curl_errno($ch);//echo"callfaild,errorCode:$error";curl_close($ch);returnfalse;}}/错误返回提示@paramstring$errMsg错误信息@paramstring$status错误码@returnjson的数据/protectedfunctionreturn_err($errMsg='error',$status=0){exit(json_encode(array('status'=$status,'result'='fail','errmsg'=$errMsg)));}/正确返回@paramarray$data要返回的数组@returnjson的数据/protectedfunctionreturn_data($data=array()){exit(json_encode(array('status'=1,'result'='success','data'=$data)));}/将一个数组转换为XML结构的字符串@paramarray$arr要转换的数组@paramint$level节点层级,1为Root.@returnstringXML结构的字符串/protectedfunctionarray2xml($arr,$level=1){$s=$level==1?"xml":'';foreach($arras$tagname=$value){if(is_numeric($tagname)){$tagname=$value['TagName'];unset($value['TagName']);}if(!is_array($value)){$s.="{$tagname}".(!is_numeric($value)?'![CDATA[':'').$value.(!is_numeric($value)?']]':'')."/{$tagname}";}else{$s.="{$tagname}".$this-array2xml($value,$level+1)."/{$tagname}";}}$s=preg_replace("/([x01-x08x0b-x0cx0e-x1f])+/",'',$s);return$level==1?$s."/xml":$s;}/将xml转为array@paramstring$xmlxml字符串@returnarray转换得到的数组/protectedfunctionxml2array($xml){//禁止引用外部xml实体libxml_disable_entity_loader(true);$result=json_decode(json_encode(simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOCDATA)),true);return$result;}/产生随机字符串,不长于32位@paramint$length@return产生的随机字符串/protectedfunctiongetNonceStr($length=32){$chars="abcdefghijklmnopqrstuvwxyz0123456789";$str="";for($i=0;$i$length;$i++){$str.=substr($chars,mt_rand(0,strlen($chars)-1),1);}return$str;}/生成签名@return签名/protectedfunctionmakeSign($data){//获取微信支付秘钥$key='klfdye2rcea0zzeukglx1v1p0k0a3swo';//去空$data=array_filter($data);//签名步骤一:按字典序排序参数ksort($data);$string_a=http_build_query($data);$string_a=urldecode($string_a);//签名步骤二:在string后加入KEY//$config=$this-config;$string_sign_temp=$string_a."&key=".$key;//签名步骤三:MD5加密$sign=md5($string_sign_temp);//签名步骤四:所有字符转为大写$result=strtoupper($sign);return$result;}publicfunctionindex(){$param=array('code'='215451');$result=SendSms($param,'18716482623');var_dump($result);}}
最新资讯
-

小程序制作平台选型踩坑记录:2026年五大主流方案横向对比
2026 年微信小程序月活达 10.7 亿、覆盖 108 个行业,本次横向对比即速应用、乔拓云、凡科、有赞、微盟五大主流平台,分三阶段给出选型结论,核心聚焦成本、扩展性、运营能力三大维度。 -

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。










