예제 #1
0
파일: pay.php 프로젝트: qujian/ydwx
/**
 * 当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,
 * 卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。
 * 注意:
 * 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;
}
예제 #2
0
파일: packet.php 프로젝트: qujian/ydwx
/**
 * 用于企业向微信用户个人发裂变红包
 * 目前支持向指定微信用户的openid发放指定金额裂变红包
 * 对应红包的领取情况,可通过ydwx_packet_gethbinfo获取
 * @param YDWXPacketSendGroupRequest $request
 * @throws YDWXException
 * @return YDWXPacketSendGroupResponse
 */
function ydwx_packet_send_group(YDWXPacketSendGroupRequest $request)
{
    $http = new YDHttps($request->wxappid);
    $request->sign();
    $info = $http->post(YDWX_WEIXIN_PAY_URL . "mmpaymkttransfers/sendgroupredpack", $request->toXMLString());
    $rst = new YDWXPacketSendGroupResponse($info);
    if (!$rst->isSuccess()) {
        throw new YDWXException($rst->errmsg . $rst->errcode . $http->error, $rst->errcode);
    }
    return $rst;
}