java微信退款接口demo_微信公众平台开发(6) 微信退款接口

接口链接:https://api.mch.weixin.qq.com/secapi/pay/refund

当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,微信支付将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家帐号上。需要下载数

字证书,Java只需要商户证书文件apiclient_cert.p12。

注意:

1、交易时间超过一年的订单无法提交退款

2、微信支付退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。申请退款总金额不能超过订单金额。 一笔退款失败后重新提交,请不要更换退款单号,请使用原商户退款单号

3、请求频率限制:150qps,即每秒钟正常的申请退款请求次数不超过150次

错误或无效请求频率限制:6qps,即每秒钟异常或错误的退款申请请求不超过6次

4、每个支付订单的部分退款次数不能超过50次

1、将微信退款所需参数封装成RefundInfo实体

public class RefundInfo implementsSerializable{/****/

private static final long serialVersionUID = 1L;/*** 公众账号ID*/

privateString appid;/*** 商户号*/

privateString mch_id;/*** 随机字符串*/

privateString nonce_str;/*** 签名*/

privateString sign;/*** 微信订单号*/

privateString transaction_id;/*** 商户退款单号,同一退款单号多次请求 只退款一次*/

privateString out_refund_no;/*** 订单金额*/

private inttotal_fee;/*** 退款金额*/

private intrefund_fee;/*** 退款结果通知url*/

privateString notify_url;/*** 退款原因:可不填*/

privateString refund_desc;//省略setter、getter方法

}

创建RefundInfo

/*** 微信退款的xml的java对象

*@paramparams UniformOrderParams

*@return

*/

public staticRefundInfo createRefundInfo(RefundParams refundParams) {

WeixinConfig wxConfig=WeixinConfig.getInstance();

String nonce_str= new StringWidthWeightRandom().getNextString(32);

RefundInfo refundInfo= newRefundInfo();

refundInfo.setAppid(wxConfig.getAppid());

refundInfo.setMch_id(wxConfig.getMch_id());

refundInfo.setNonce_str(nonce_str);

refundInfo.setNotify_url(wxConfig.getWx_refund_notify_url());

refundInfo.setRefund_desc(refundParams.getRefund_desc());

refundInfo.setRefund_fee(refundParams.getRefund_fee());

refundInfo.setTotal_fee(refundParams.getTotal_fee());

refundInfo.setTransaction_id(refundParams.getTransaction_id());

refundInfo.setOut_refund_no(refundParams.getOut_refund_no());returnrefundInfo;

}

2、调前面写的统一的微信调用接口申请退款,将微信的返回结果转换成map

@Overridepublic Ma

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值