2020-05-11

微信退款(在.net core 用http方式请求)

微信退款(在.net core 用http方式请求)


微信JSAPI支付  申请退款

 

接口地址

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

是否需要证书

请求需要双向证书。 详见证书使用

请求参数

字段名变量名必填类型示例值描述
公众账号IDappidString(32)wx8888888888888888微信分配的公众账号ID(企业号corpid即为此appId)
商户号mch_idString(32)1900000109微信支付分配的商户号
随机字符串nonce_strString(32)5K8264ILTKCH16CQ2502SI8ZNMTM67VS随机字符串,不长于32位。推荐随机数生成算法
签名signString(32)C380BEC2BFD727A4B6845133519F3AD6签名,详见签名生成算法
签名类型sign_typeString(32)HMAC-SHA256签名类型,目前支持HMAC-SHA256和MD5,默认为MD5
微信订单号transaction_id二选一String(32)1217752501201407033233368018微信生成的订单号,在支付通知中有返回
商户订单号out_trade_noString(32)1217752501201407033233368018商户系统内部订单号,要求32个字符内,只能是数字、大小写字母_-|*@ ,且在同一个商户号下唯一。

transaction_id、out_trade_no二选一,如果同时存在优先级:transaction_id> out_trade_no

商户退款单号out_refund_noString(64)1217752501201407033233368018商户系统内部的退款单号,商户系统内部唯一,只能是数字、大小写字母_-|*@ ,同一退款单号多次请求只退一笔。
订单金额total_feeInt100订单总金额,单位为分,只能为整数,详见支付金额
退款金额refund_feeInt100退款总金额,订单总金额,单位为分,只能为整数,详见支付金额
退款货币种类refund_fee_typeString(8)CNY退款货币类型,需与支付一致,或者不填。符合ISO 4217标准的三位字母代码,默认人民币:CNY,其他值列表详见货币类型
退款原因refund_descString(80)商品已售完

若商户传入,会在下发给用户的退款消息中体现退款原因

注意:若订单退款金额≤1元,且属于部分退款,则不会在退款消息中体现退款原因

退款资金来源refund_accountString(30)REFUND_SOURCE_RECHARGE_FUNDS

仅针对老资金流商户使用

REFUND_SOURCE_UNSETTLED_FUNDS---未结算资金退款(默认使用未结算资金退款)

REFUND_SOURCE_RECHARGE_FUNDS---可用余额退款

退款结果通知urlnotify_urlString(256)https://weixin.qq.com/notify/

异步接收微信支付退款结果通知的回调地址,通知URL必须为外网可访问的url,不允许带参数

如果参数中传了notify_url,则商户平台上配置的回调地址将不会生效。

  
 public string GetWxGZHPayRefund(){   //构造请求参数   RequestHandler packageReqHandler = new RequestHandler();   #region 构造请求参数   packageReqHandler.SetParameter("appid", WxPayConfig.appid);//APPID   packageReqHandler.SetParameter("mch_id", WxPayConfig.mchid);//商户号   packageReqHandler.SetParameter("nonce_str", TenPayV3Util.GetNoncestr());//随机串   packageReqHandler.SetParameter("out_refund_no", out_refund_no);   packageReqHandler.SetParameter("out_trade_no", out_trade_no);//订单号   packageReqHandler.SetParameter("refund_fee", (int)(Convert.ToDecimal(refund_fee) * 100) + "");   packageReqHandler.SetParameter("total_fee", (int)(Convert.ToDecimal(total_fee) * 100) + ""); //金额,以分为单位   packageReqHandler.SetParameter("transaction_id", transaction_id);   packageReqHandler.SetParameter("sign", packageReqHandler.CreateMd5Sign("key", WxPayConfig.key));//商户API密钥(签名)                            //     

No comments:

Post a Comment