本人是参考微信支付官方提供的案例来操作的:
其中我是把他的`refund`订单退款拿过来进行修改的
贴上代码
/**
* 微信支付_订单退款
*/
public function wechat_refund() {
//微信订单号和商户订单号选少填一个,微信订单号优先:
//微信订单号:
if(isset($_POST["transaction_id"]) && $_POST["transaction_id"] != ""){
$transaction_id = $_POST["transaction_id"]; //微信订单号
$total_fee = $_POST["total_fee"]; //总金额
$refund_fee = $_POST["refund_fee"]; //退款金额
$input = new WxPayRefund();
$input->SetTransaction_id($transaction_id); //微信订单号
$input->SetTotal_fee($total_fee); //总金额
$input->SetRefund_fee($refund_fee); //退款金额
$input->SetOut_refund_no(WxPayConfig::MCHID.date("YmdHis")); //退款订单号
$input->SetOp_user_id(WxPayConfig::MCHID); //商户订单号
WxPayApi::refund($input);
exit();
}
//商户订单号:
//$_POST["out_trade_no"]= "122531270220150304194108";
//$_POST["total_fee"]= "1";
//$_POST["refund_fee"] = "1";
if(isset($_POST["out_trade_no"]) && $_POST["out_trade_no"] != ""){
$out_trade_no = $_POST["out_trade_no"];
$total_fee = $_POST["total_fee"];
$refund_fee = $_POST["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);
WxPayApi::refund($input);
exit();
}
}
唯一一点要注意的就是:证书必须路径必须是绝对路径
简单来说:你只要证书放对了位置,并且路径地址也写对了。就可以了达到退款功能了。!!!!!证书没放对会报错:58这种错误