You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.7 KiB

преди 3 години
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Web;
  4. namespace WxPayAPI
  5. {
  6. public class Refund
  7. {
  8. /***
  9. * 退
  10. * @param transaction_id 使
  11. * @param out_trade_no
  12. * @param total_fee
  13. * @param refund_fee 退
  14. * @return 退xml格式
  15. */
  16. public static string Run(string transaction_id, string out_trade_no, string total_fee, string refund_fee)
  17. {
  18. Log.Info("Refund", "Refund is processing...");
  19. WxPayData data = new WxPayData();
  20. if (!string.IsNullOrEmpty(transaction_id))//微信订单号存在的条件下,则已微信订单号为准
  21. {
  22. data.SetValue("transaction_id", transaction_id);
  23. }
  24. else//微信订单号不存在,才根据商户订单号去退款
  25. {
  26. data.SetValue("out_trade_no", out_trade_no);
  27. }
  28. data.SetValue("total_fee", int.Parse(total_fee));//订单总金额
  29. data.SetValue("refund_fee", int.Parse(refund_fee));//退款金额
  30. data.SetValue("out_refund_no", WxPayApi.GenerateOutTradeNo());//随机生成商户退款单号
  31. data.SetValue("op_user_id", WxPayConfig.MCHID);//操作员,默认为商户号
  32. WxPayData result = WxPayApi.Refund(data);//提交退款申请给API,接收返回数据
  33. Log.Info("Refund", "Refund process complete, result : " + result.ToXml());
  34. return result.ToPrintStr();
  35. }
  36. }
  37. }