加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP开拓实现微信退款成果示例

发布时间:2021-03-14 21:04:14 所属栏目:编程 来源:网络整理
导读:本篇章节讲授PHP开拓实现微信退款成果。供各人参考研究详细如下: 最近在调微信退款接口,发明有很多坑,更各人分享一下 ① 要是在测试的时辰,网页提醒 curl 58 声名 证书的路径呈现题目(这里要填物理路径,也就是绝对路径)② 网页提醒curl 52

本篇章节讲授PHP开拓实现微信退款成果。分享给各人供各人参考,详细如下:

最近在调微信退款接口,发明有很多坑,更各人分享一下

① 要是在测试的时辰,网页提醒 curl 58 声名 证书的路径呈现题目(这里要填物理路径,也就是绝对路径) ② 网页提醒curl 52 声名你的证书引入少了,在官方的demo上只有两个证书 apiclient_cert.pem和 apiclient_key.pem 你还必要引入一个证书 rootca.pem,这个证书必要你登录到 你的商户平台上下载 ③ 要是网页提醒 "HTTP/1.1 200 OK Server: nginx Date: Tue,20 Jun 2017 08:08:01 GMT Content-Type: text/plain Content-Length: 852 Connection: keep-alive Keep-Alive: timeout=8 声名你的代码是没有题目的 ,应该是参数堕落了 我之前错的处所是把 out_refund_no和 out_trade_no写的一样,微信官网上也是这样写的 ,可是就是呈现题目,我把out_refund_no 修改了一下 发明可以了

留意:金额的单元是分

下面就是我写的接口

$appid,//应用ID,牢靠 'mch_id' => $mch_id,//商户号,牢靠 'nonce_str' => $nonce_str,//随机字符串 'op_user_id' => $op_user_id,//操纵员 'out_refund_no' => $out_refund_no,//商户内部独一退款单号 'out_trade_no' => $out_trade_no,//商户订单号,pay_sn码 1.1二选一,微信天生的订单号,在付出关照中有返回 // 'transaction_id'=>'1',//微信订单号 1.2二选一,商户侧传给微信的订单号 'refund_fee' => $refund_fee,//退款金额 'total_fee' => $total_fee,//总金额 'sign' => $ref//署名 ); $url = "https://api.mch.weixin.qq.com/secapi/pay/refund"; ; //微信退款地点,post哀求 $xml = arrayToXml($refund); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HEADER,1); curl_setopt($ch,CURLOPT_RETURNTRANSFER,CURLOPT_SSL_VERIFYPEER,1); //证书搜查 if ($useCert == true) { // 配置证书 curl_setopt($ch,CURLOPT_SSLCERTTYPE,'pem'); curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__) . '/WxPay/cert/apiclient_cert.pem'); curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__) . '/WxPay/cert/apiclient_key.pem'); curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__) . '/WxPay/cert/rootca.pem'); } curl_setopt($ch,CURLOPT_POST,CURLOPT_POSTFIELDS,$xml); $xml = curl_exec($ch); // 返回功效0的时辰能只能表白措施是正常返回不必然声名退款乐成罢了 if ($xml) { curl_close($ch); // 把xml转化成数组 libxml_disable_entity_loader(true); $xmlstring = simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOCDATA); // var_dump($xmlstring); $result['errNum'] = 0; $result['info'] = object_to_array($xmlstring); // var_dump($result); return $result; } else { $error = curl_errno($ch); curl_close($ch); // 错误的时辰返回错误码。 $result['errNum'] = $error; return $result; } } function arrayToXml($arr) { $xml = ""; foreach ($arr as $key => $val) { if (is_array($val)) { $xml .= "<" . $key . ">" . arrayToXml($val) . ""; return $xml; } function object_to_array($obj) { $obj = (array) $obj; foreach ($obj as $k => $v) { if (gettype($v) == 'resource') { return; } if (gettype($v) == 'object' || gettype($v) == 'array') { $obj[$k] = (array) object_to_array($v); } } return $obj; } function nonceStr() { $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; $str = ""; $length = 32; for ($i = 0; $i < $length; $i++) { $str .= substr($chars,mt_rand(0,strlen($chars) - 1),1); } // 随机字符串 return $str; } Home_index();

赶紧添加到你的项目中去吧

更多关于PHP相干内容感乐趣的读者可查察本站专题:《》、《》、《》、《》、《》及《》

但愿本文所述对各人PHP措施计划有所辅佐。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读