注:微信退款需要把从微信商户平台下载下来的证书放在服务器中
class RefundController extends BaseController {
//通过微信api进行退款流程
public function wxRefundApi($out_trade_no,$total_fee){
$parma = array(
'appid' => C('APPID'), //appid
'mch_id' => C('MCHID'), //商户id
'nonce_str' => $this->createNoncestr(), //随机字符串
'out_refund_no' => $out_trade_no.rand('1111,9999'), //由后端生成的退款单号,需要保证唯一,因为多个同样的退款单号只会退款一次。
'out_trade_no' => $out_trade_no, //退款订单在支付时生成的订单号
'total_fee' => $total_fee*100, //支付金额:此处单位是分所以需要*100
'refund_fee' => $total_fee*100, //退款金额:此处单位是分所以需要*100
'op_user_id' => C('MCHID'), //操作员 op_user_id .与商户号相同即可
);
$parma['sign'] = $this->getSign($parma);
$xmldata = $this->arrayToXml($parma);
$xmlresult = $this->postXmlSSLCurl($xmldata,'https://api.mch.weixi