C#微信退费全过程
//调用退费
public void WeChatRefund(string total_fee,string refund_fee,string transaction_id){
string totalfee= (float.Parse(total_fee) * 100).ToString();//订单总价
string refundfee= (float.Parse(refund_fee) * 100).ToString();//退费金额
string res = RefundRun(transaction_id, "", totalfee, refundfee);//调用退费方法
if (res.Contains("return_msg=OK")){
//退费成功
}
else{
//退费失败
}
}
/***
* 申请退款完整业务流程逻辑
* @param transaction_id 微信订单号(优先使用)
* @param out_trade_no 商户订单号
* @param total_fee 订单总金额
* @param refund_fee 退款金额
* @return 退款结果(xml格式)
*/
public static string RefundRun(string transaction_id, string out_trade_no, string total_fee, string refund_fee)
{
Log.Info("Refund", "Refund is processing...");
WxPayData data = new WxPayData();
if (!string.IsNullOrEmpty(transaction_id))//微信订单号存在的条件下,则已微信订单号为准
{
data.SetValue("transaction_id", transaction_id);
}
else//微信订单号不存在,才根据商户订单号去退款
{
data.SetValue("out_trade_no", out_trade_no);
}
data.SetValue("total_fee", int.Parse(total_fee));//订单总金额
data.SetValue("refund_fee", int.Parse(refund_fee));//退款金额
data.SetValue("out_refund_no", WxPayApi.GenerateOutTradeNo());//随机生成商户退款单号
data