| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- using System.Collections.Generic;
- using Essensoft.AspNetCore.Payment.WeChatPay.Response;
- using Essensoft.AspNetCore.Payment.WeChatPay.Utility;
- namespace Essensoft.AspNetCore.Payment.WeChatPay.Request
- {
- /// <summary>
- /// 酒店押金 - 申请退款
- /// </summary>
- public class WeChatPayDepositRefundRequest : IWeChatPayCertRequest<WeChatPayDepositRefundResponse>
- {
- /// <summary>
- /// 子商户应用号
- /// </summary>
- public string SubAppId { get; set; }
- /// <summary>
- /// 子商户号
- /// </summary>
- public string SubMchId { get; set; }
- /// <summary>
- /// 微信支付订单号
- /// </summary>
- public string TransactionId { get; set; }
- /// <summary>
- /// 押金退款单号
- /// </summary>
- public string OutRefundNo { get; set; }
- /// <summary>
- /// 订单金额
- /// </summary>
- public int TotalFee { get; set; }
- /// <summary>
- /// 申请退款金额
- /// </summary>
- public int RefundFee { get; set; }
- /// <summary>
- /// 退款货币种类
- /// </summary>
- public string RefundFeeType { get; set; }
- /// <summary>
- /// 退款原因
- /// </summary>
- public string RefundDesc { get; set; }
- /// <summary>
- /// 退款资金来源
- /// </summary>
- public string RefundAccount { get; set; }
- #region IWeChatPayCertificateRequest Members
- public string GetRequestUrl()
- {
- return "https://api.mch.weixin.qq.com/deposit/refund";
- }
- public IDictionary<string, string> GetParameters()
- {
- var parameters = new WeChatPayDictionary
- {
- { "sub_appid", SubAppId },
- { "sub_mch_id", SubMchId },
- { "transaction_id", TransactionId },
- { "out_refund_no", OutRefundNo },
- { "total_fee", TotalFee },
- { "refund_fee", RefundFee },
- { "refund_fee_type", RefundFeeType },
- { "refund_desc", RefundDesc },
- { "refund_account", RefundAccount },
- };
- return parameters;
- }
- public WeChatPaySignType GetSignType()
- {
- return WeChatPaySignType.HMAC_SHA256;
- }
- public void PrimaryHandler(WeChatPayOptions options, WeChatPaySignType signType, WeChatPayDictionary sortedTxtParams)
- {
- sortedTxtParams.Add(WeChatPayConsts.nonce_str, WeChatPayUtility.GenerateNonceStr());
- sortedTxtParams.Add(WeChatPayConsts.appid, options.AppId);
- sortedTxtParams.Add(WeChatPayConsts.mch_id, options.MchId);
- if (signType == WeChatPaySignType.HMAC_SHA256)
- {
- sortedTxtParams.Add(WeChatPayConsts.sign_type, WeChatPayConsts.HMAC_SHA256);
- }
- sortedTxtParams.Add(WeChatPayConsts.sign, WeChatPaySignature.SignWithKey(sortedTxtParams, options.Key, signType));
- }
- public bool GetNeedCheckSign()
- {
- return true;
- }
- #endregion
- }
- }
|