/** * 当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时, * 卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。 * 注意: * 1、交易时间超过一年的订单无法提交退款; * 2、微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。 * 一笔退款失败后重新提交,要采用原来的退款单号。总退款金额不能超过用户实际支付金额。 * * @param YDWXPayRefundRequest arg * @return YDWXPayRefundResponse */ function ydwx_pay_refund(YDWXPayRefundRequest $arg) { $arg->sign(); $args = $arg->toXMLString(); $http = new YDHttps($arg->appid); $info = $http->post(YDWX_WEIXIN_PAY_URL . "secapi/pay/refund", $args); $msg = new YDWXPayRefundResponse($info); if (!$msg->isSuccess()) { throw new YDWXException($msg->errmsg); } return $msg; }
public function valid() { parent::valid(); if (!$this->transaction_id && !$this->out_trade_no && !$this->refund_id && !$this->out_refund_no) { throw new YDWXException("transaction_id与out_trade_no,out_refund_no,refund_id至少设置一个"); } }