现在加入
中小卖家大神抱团从这里开始 始于2012年,加入卖家超280,000位+
浮云社区 门户 特色市场 查看内容

微信支付商户平台查询退款怎么实现?

2017-12-8 20:15| 发布者: admin| 查看: 16| 评论: 0|原作者: admin

摘要: 按照常理说,在微信支付商户平台中,是无法查询到退款的信息的,但是想要实现的话又不是不可能哦,那么微信支付商户平台查询退款怎么实现?大家跟着小编来看看实现的方法和一些代码吧。  微信支付商户平台查询退款 ...
按照常理说,在微信支付商户平台中,是无法查询到退款的信息的,但是想要实现的话又不是不可能哦,那么微信支付商户平台查询退款怎么实现?大家跟着小编来看看实现的方法和一些代码吧。  微信支付商户平台查询退款怎么实现?  一.证书的配置与下载  路径下载:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->证书下载 。证书文件有四个,全部下载即可。    二.配置参数  [php] view plain copyarray(  'appid'=>'your_appid',//应用ID,固定  'mch_id'=>'your_mch_id',//商户号,固定  'nonce_str'=>'123456',//随机字符串  'op_user_id'=>'646131',//操作员  'out_refund_no'=>'201608142308',//商户内部唯一退款单号  'out_trade_no'=>'860524080535541654',//商户订单号,pay_sn码 1.1二选一,微信生成的订单号,在支付通知中有返回  // 'transaction_id'=>'1',//微信订单号 1.2二选一,商户侧传给微信的订单号  'refund_fee'=>'3',//退款金额  'total_fee'=>'3',//总金额  'sign'=>$ref//签名  );  三.注意事项  常见问题:  1. 本接口是需要证书的,下载放上见上边  2. 微信的接口里,所有对金额的描述,都是以分为单位的  3.交易时间超过一年的订单无法提交退款;  4.微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。一笔退款失败后重新提交,要采用原来的退款单号。总退款金额不能超过用户实际支付金额。  5.在用下边demo做测试的时候,请先真实支付一次,获取相应的ID与参数,然后直接运行调试即可,仅供参考  6.注意下签名规则    7.CURL 返回值为58  答:证书路径问题,证书路径应该为物理全路径,getcwd().'/apiclient_cert.pem'这种写法 或者自己函数获取  8.CURL 返回值为77  答:证书问题,重新下载证书,按照配置对应放在生产路径,同上一条,用全的物理路径。  原因:out_trade_no错误【out_trade_no为自己系统生产的支付码】  原因:out_trade_no不存在,也是就说没有这笔支付号  demo源码  /*  请确保您的libcurl版本是否支持双向微信认证,版本高于7.20.1  */  function Home_index(){  $ref= strtoupper(md5("appid=your_appid&mch_id=your_mch_id&nonce_str=123456&op_user_id=646131"  . "&out_refund_no=201608142308&out_trade_no=860524080535541654&refund_fee=3&total_fee=3"  . "&key=suiji123"));//sign加密MD5  $refund=array(  'appid'=>'your_appid',//应用ID,固定  'mch_id'=>'your_mch_id',//商户号,固定  'nonce_str'=>'123456',//随机字符串  'op_user_id'=>'646131',//操作员  'out_refund_no'=>'201608142308',//商户内部唯一退款单号  'out_trade_no'=>'860524080535541654',//商户订单号,pay_sn码 1.1二选一,微信生成的订单号,在支付通知中有返回  // 'transaction_id'=>'1',//微信订单号 1.2二选一,商户侧传给微信的订单号  'refund_fee'=>'3',//退款金额  'total_fee'=>'3',//总金额  '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,1);  curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,1);//证书检查  curl_setopt($ch,CURLOPT_SSLCERTTYPE,'pem');  curl_setopt($ch,CURLOPT_SSLCERT,dirname(__FILE__).'/cert/apiclient_cert.pem');  curl_setopt($ch,CURLOPT_SSLCERTTYPE,'pem');  curl_setopt($ch,CURLOPT_SSLKEY,dirname(__FILE__).'/cert/apiclient_key.pem');  curl_setopt($ch,CURLOPT_SSLCERTTYPE,'pem');  curl_setopt($ch,CURLOPT_CAINFO,dirname(__FILE__).'/cert/rootca.pem');  curl_setopt($ch,CURLOPT_POST,1);  curl_setopt($ch,CURLOPT_POSTFIELDS,$xml);  $data=curl_exec($ch);  if($data){ //返回来的是xml格式需要转换成数组再提取值,用来做更新  curl_close($ch);  var_dump($data);  }else{  $error=curl_errno($ch);  echo "curl出错,错误代码:$error"."  ";  echo ";错误原因查询  ";  curl_close($ch);  echo false;  }  }  function arrayToXml($arr){  $xml = "";  foreach ($arr as $key=>$val){  if(is_array($val)){  $xml.="".arrayToXml($val)."";  }else{  $xml.="".$val."";  }  }  $xml.="";  return $xml ;  }  Home_index();  以上是微信支付商户平台查询退款实现的方法了,需要开发出来哦,如果你只是一个普通的微信商户,那么可能就不会操作了,这需要专业的人士去进行开发哦。十分欢迎你来开淘网了解相关内容。


路过

雷人

握手

鲜花

鸡蛋

电商社区 关于我们  |  联系我们  |  使用条例

在线客服:6244225
关于我们

浮云社区(cdnaaa.com)是国内主流的电商中小卖家交流论坛社区,平台成立于2012年,由一群有十余年电商运营经验团队组建而成!建立初心:让中小卖家盈利变得更简单!互帮互学集思广益谋思路,探讨交流分享最新干货、玩法!

微信客服
  • 微信客服 电商-中小卖家社区
  • 返回顶部