示例#1
0
 $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();
 //商户根据实际情况设置相应的处理流程,此处仅作举例
 if ($refundQueryResult["return_code"] == "FAIL") {
     echo "通信出错:" . $refundQueryResult['return_msg'] . "<br>";
 } else {
     echo "业务结果:" . $refundQueryResult['result_code'] . "<br>";
     echo "错误代码:" . $refundQueryResult['err_code'] . "<br>";
     echo "错误代码描述:" . $refundQueryResult['err_code_des'] . "<br>";
     echo "公众账号ID:" . $refundQueryResult['appid'] . "<br>";
     echo "商户号:" . $refundQueryResult['mch_id'] . "<br>";
     echo "子商户号:" . $refundQueryResult['sub_mch_id'] . "<br>";
     echo "设备号:" . $refundQueryResult['device_info'] . "<br>";
     echo "签名:" . $refundQueryResult['sign'] . "<br>";
     echo "微信订单号:" . $refundQueryResult['transaction_id'] . "<br>";
     echo "商户订单号:" . $refundQueryResult['out_trade_no'] . "<br>";
     echo "退款笔数:" . $refundQueryResult['refund_count'] . "<br>";
 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;
 }