zoukankan      html  css  js  c++  java
  • 微信退款

    原文:http://www.upwqy.com/details/19.html

    1 微信退款官方文档  

    https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_4&index=6

    2 微信退款的实现过程

    老板已经催促了好几个月了。今天实在是没有办法了,那就给他写了吧,原来没有写过退款 ,看文档还是看了很久的,虽然说官方给的demo 但是还是看一下比较好 就当是学习了嘛 

    好了,废话不多说 ,开始上菜 因为是第一次做退款 咱们还是直接用demo里面的代码

    首先呢 导入类库 

    Loader::import('paywx.lib.WxPay', EXTEND_PATH, '.Api.php');

    然后在demo里面找到refund.php 文件 可以看到里面有两种退款方式 一种是根据商户订单号退款 一种是根据微信订单号退款 

    咱们使用商户订单号退款 其实代码是基本是一样的 只是设置订单时参数不一样的而已 

    好了 上代码 

    public static function WxRefund($out_trade_no,$total_fee,$refund_fee){
        if($out_trade_no){
            $input = new WxPayRefund();
            $input->SetOut_trade_no($out_trade_no);
            $input->SetTotal_fee($total_fee*100);
            $input->SetRefund_fee($refund_fee*100);
            $input->SetOut_refund_no(WxPayConfig::MCHID.date("YmdHis"));
            $input->SetOp_user_id(WxPayConfig::MCHID);
            $param = WxPayApi::refund($input);
            if($param['return_code'] == 'SUCCESS'){
                return true;
            }
            throw new Exception($param['return_msg']);
        }
        return true;
    }

    我们可以看到 基本上时demo里面是一样的 那么我们为什么还要专门写出来呢,当然不是来显摆的啊。

    虽然 是代码很简单 但是里面还是有坑的 

    第一 :看代码 其实订单金额和退款金额两个参数都 (*100),为什么呢,这就要看文档了。文档上说的这两个参数的单位是分。因为看文档没有看仔细  浪费了不少时间。直接使用订单金额 会报 订单金额和退款金额不一致的错误

    第二:就是证书的路径问题。我不知道别人是怎么配置的 我这里电脑是Mac的直接使用demo里面的路径 在调用接口后 返回

     curl出错,错误码:58

    这样的错误 在网上查了很久 大多都是说在windows上使用绝对路径 ,在linux上使用相对路径 ,而Mac上应该也是使用相对路径 但是还是一直报错 ,我这里是使用的 TP5 ,demo是放在extend目录下面 ,我想是不是应该tp5的入口是public目录下 而extend不能直接访问 所以在使用相对路径是找不到路径的原因呢 ,然后就开始尝试把证书放址到public目录下 其实路径改为 

    getcwd().'/cert/apiclient_cert.pem'

    结果竟然成功了。

    但是感觉放置在public目录下 很不安全 但是暂时也没有别的办法了。只能先这样用着 

  • 相关阅读:
    IT开发者对Mac钟爱
    POJ 3486 & HDU 1913 Computers(dp)
    基础排序算法
    LeetCode 70:Climbing Stairs
    Qt自己定义事件实现及子线程向主线程传送事件消息
    maven自己主动编译,解决你每次代码改动须要又一次编译的繁琐
    Unity定制 Image、Text的对象生成
    iOS学习4_UITableView的使用
    GTK+重拾--09 GTK+中的组件(一)
    Architecting Android…The clean way?
  • 原文地址:https://www.cnblogs.com/wqy415/p/7744729.html
Copyright © 2011-2022 走看看