Example #1
0
<?php

/**
 * 退款申请接口-demo
 * ====================================================
 * 
 * 
*/
include_once "../WxPayPubHelper/WxPayPubHelper.php";
//要查询的订单号
if (!isset($_POST["out_trade_no"])) {
    $out_trade_no = " ";
} else {
    $out_trade_no = $_POST["out_trade_no"];
    //使用退款查询接口
    $refundQuery = new RefundQuery_pub();
    //设置必填参数
    //appid已填,商户无需重复填写
    //mch_id已填,商户无需重复填写
    //noncestr已填,商户无需重复填写
    //sign已填,商户无需重复填写
    $refundQuery->setParameter("out_trade_no", "{$out_trade_no}");
    //商户订单号
    // $refundQuery->setParameter("out_refund_no","XXXX");//商户退款单号
    // $refundQuery->setParameter("refund_id","XXXX");//微信退款单号
    // $refundQuery->setParameter("transaction_id","XXXX");//微信退款单号
    //非必填参数,商户可根据实际情况选填
    //$refundQuery->setParameter("sub_mch_id","XXXX");//子商户号
    //$refundQuery->setParameter("device_info","XXXX");//设备号
    //退款查询接口结果
    $refundQueryResult = $refundQuery->getResult();
 public function refundQuery($order)
 {
     $ret = new \stdClass();
     $ret->is_success = '';
     $config = $this->getConfig($order);
     if (!$config) {
         $ret->is_success = 'F';
         $ret->error = '不存在的交易号';
         return $ret;
     }
     $refundQueryObj = new \RefundQuery_pub($config);
     //$refundQueryObj->setParameter('out_trade_no', "$out_trade_no") ;              //商户订单号
     $refundQueryObj->setParameter('transaction_id', $order['ser_recharge_no']);
     //微信订单号
     //$refundQuery->setParameter("out_refund_no","XXXX");//商户退款单号
     //$refundQuery->setParameter("refund_id","XXXX");//微信退款单号
     //$refundQuery->setParameter("transaction_id","XXXX");//微信退款单号
     //非必填参数,商户可根据实际情况选填
     //$refundQuery->setParameter("sub_mch_id","XXXX");//子商户号
     //$refundQuery->setParameter("device_info","XXXX");//设备号
     //退款查询接口结果
     $refundQueryResult = $refundQueryObj->getResult();
     if ($refundQueryResult["return_code"] == "SUCCESS") {
         if ($refundQueryResult['result_code'] == 'SUCCESS' && $refundQueryResult['refund_count'] >= 1) {
             $ret->is_success = 'T';
             $ret->code = 1;
             //已经退过款
             $ret->error = '该笔订单已经退过款,退款不允许超过两次';
             $ret->refund_count = $refundQueryResult['refund_count'];
             $ret->mer_refund_no = $refundQueryResult['out_refund_no'];
             $ret->ser_refund_no = $refundQueryResult['refund_id'];
         }
     } else {
         $ret->is_success = 'F';
         $ret->code = 999;
         $ret->error = '通信出错:errmsg=' . $refundQueryResult['return_msg'];
     }
     return $ret;
 }