You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
using System ;
using System.Collections.Generic ;
using System.Web ;
namespace WxPayAPI
{
public class Refund
{
/***
* 申请退款完整业务流程逻辑
* @param transaction_id 微信订单号(优先使用)
* @param out_trade_no 商户订单号
* @param total_fee 订单总金额
* @param refund_fee 退款金额
* @return 退款结果( xml格式)
*/
public static string Run ( 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 . SetValue ( "op_user_id" , WxPayConfig . MCHID ) ; //操作员,默认为商户号
WxPayData result = WxPayApi . Refund ( data ) ; //提交退款申请给API, 接收返回数据
Log . Info ( "Refund" , "Refund process complete, result : " + result . ToXml ( ) ) ;
return result . ToPrintStr ( ) ;
}
}
}