Ejemplo n.º 1
0
/**
 * 退单
 * $transaction_id 微信订单号
 * $out_trade_no 系统订单号
 * $total_fee 订单金额
 * $refund_fee 退款金额
 *
 */
function refund($data = array())
{
    $input = new WxPayRefund();
    if ($data['transaction_id']) {
        $input->SetTransaction_id($data['transaction_id']);
    }
    if ($data['out_trade_no']) {
        $input->SetOut_trade_no($data['out_trade_no']);
    }
    $input->SetTotal_fee($data['total_fee']);
    $input->SetRefund_fee($data['refund_fee']);
    $input->SetOut_refund_no(get_order_sn('zr'));
    $input->SetOp_user_id(WxPayConfig::MCHID);
    return WxPayApi::refund($input);
}
Ejemplo n.º 2
0
 /**
  * @param $out_trade_no
  * @return bool
  * @throws \WxPayException
  */
 public function refund($out_trade_no, $fee)
 {
     $WxPayRefund = new \WxPayRefund();
     $WxPayRefund->setWxPayApi($this->wxPayApi);
     $WxPayRefund->SetOut_trade_no($out_trade_no);
     $WxPayRefund->SetOut_refund_no($out_trade_no);
     $WxPayRefund->SetTotal_fee($fee);
     $WxPayRefund->SetRefund_fee($fee);
     $WxPayRefund->SetOp_user_id($this->wxPayApi->getWxPayConfig()['MCHID']);
     $result = $this->wxPayApi->refund($WxPayRefund, $this->wxPayConfig['CURL_TIMEOUT']);
     if ($result['return_code'] == 'FAIL') {
         //系统出错
         throw new \WxPayException("接口调用失败!" . $result['return_msg']);
     }
     if ($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS') {
         //退款申请 接收成功 ,结果通过退款查询接口查询
         return true;
     }
     if ($result['result_code'] == 'FAIL') {
         //业务提交失败
         throw new \WxPayException("业务提交失败!");
     }
     return false;
 }
Ejemplo n.º 3
0
    $input->SetTotal_fee($total_fee);
    $input->SetRefund_fee($refund_fee);
    $input->SetOut_refund_no(WxPayConfig::MCHID . date("YmdHis"));
    $input->SetOp_user_id(WxPayConfig::MCHID);
    printf_info(WxPayApi::refund($input));
    exit;
}
//$_REQUEST["out_trade_no"]= "122531270220150304194108";
///$_REQUEST["total_fee"]= "1";
//$_REQUEST["refund_fee"] = "1";
if (isset($_REQUEST["out_trade_no"]) && $_REQUEST["out_trade_no"] != "") {
    $out_trade_no = $_REQUEST["out_trade_no"];
    $total_fee = $_REQUEST["total_fee"];
    $refund_fee = $_REQUEST["refund_fee"];
    $input = new WxPayRefund();
    $input->SetOut_trade_no($out_trade_no);
    $input->SetTotal_fee($total_fee);
    $input->SetRefund_fee($refund_fee);
    $input->SetOut_refund_no(WxPayConfig::MCHID . date("YmdHis"));
    $input->SetOp_user_id(WxPayConfig::MCHID);
    printf_info(WxPayApi::refund($input));
    exit;
}
?>
<body>  
	<form action="#" method="post">
        <div style="margin-left:2%;color:#f00">微信订单号和商户订单号选少填一个,微信订单号优先:</div><br/>
        <div style="margin-left:2%;">微信订单号:</div><br/>
        <input type="text" style="width:96%;height:35px;margin-left:2%;" name="transaction_id" /><br /><br />
        <div style="margin-left:2%;">商户订单号:</div><br/>
        <input type="text" style="width:96%;height:35px;margin-left:2%;" name="out_trade_no" /><br /><br />
Ejemplo n.º 4
0
 /**
  * @note   申请退款
  * @access public
  * @author zhangchong <*****@*****.**>
  * @date   2015/7/9 17:31
  * @param  $params['out_trade_no']    原订单号
  * @param  $params['transaction_id']  微信交易号  交易号和原订单号2选1,如果同时存在  交易号优先级大于原订单号
  * @param  $params['total_fee']       订单总金额 单位:元
  * @param  $params['refund_fee']      退款金额 单位:元
  * @param  $params['refund_code']     退款订单号
  * @return array|boolean              返回false表示参数设置错误
  **/
 public function refund($params = array())
 {
     if (!isset($params['transaction_id']) && !isset($params['out_trade_no'])) {
         return false;
     }
     //简单的验证,订单号和微信交易号都不存在
     $input = new WxPayRefund($this->config);
     if (isset($params['transaction_id'])) {
         $input->SetTransaction_id($params['transaction_id']);
     } else {
         $input->SetOut_trade_no($params['out_trade_no']);
     }
     $input->SetTotal_fee($params['total_fee'] * 100);
     //微信金额单位是分,咱们是元,所以要乘以100
     $input->SetRefund_fee($params['refund_fee'] * 100);
     //微信金额单位是分,咱们是元,所以要乘以100
     $input->SetOut_refund_no($params['refund_code']);
     $input->SetOp_user_id($this->config->mchid);
     return Pay\WxPayApi::refund($input);
 }