Просмотр исходного кода

手机网页支付(V2.2) 消费撤销接口

Roc 7 лет назад
Родитель
Сommit
63094d68bd

+ 178 - 0
src/Essensoft.AspNetCore.Payment.UnionPay/Notify/UnionPayWapPayConsumeUndoNotifyResponse.cs

@@ -0,0 +1,178 @@
+using Newtonsoft.Json;
+
+namespace Essensoft.AspNetCore.Payment.UnionPay.Notify
+{
+    /// <summary>
+    /// 手机网页支付(V2.2) 消费撤销接口 - 后台通知
+    /// </summary>
+    public class UnionPayWapPayConsumeUndoNotifyResponse : UnionPayNotifyResponse
+    {
+        /// <summary>
+        /// 查询流水号
+        /// </summary>
+        [JsonProperty("queryId")]
+        public string QueryId { get; set; }
+
+        /// <summary>
+        /// 交易币种
+        /// </summary>
+        [JsonProperty("currencyCode")]
+        public string CurrencyCode { get; set; }
+
+        /// <summary>
+        /// 交易传输时间
+        /// </summary>
+        [JsonProperty("traceTime")]
+        public string TraceTime { get; set; }
+
+        /// <summary>
+        /// 签名
+        /// </summary>
+        [JsonProperty("signature")]
+        public string Signature { get; set; }
+
+        /// <summary>
+        /// 签名方法
+        /// </summary>
+        [JsonProperty("signMethod")]
+        public string SignMethod { get; set; }
+
+        /// <summary>
+        /// 清算币种
+        /// </summary>
+        [JsonProperty("settleCurrencyCode")]
+        public string SettleCurrencyCode { get; set; }
+
+        /// <summary>
+        /// 清算金额
+        /// </summary>
+        [JsonProperty("settleAmt")]
+        public string SettleAmt { get; set; }
+
+        /// <summary>
+        /// 清算日期
+        /// </summary>
+        [JsonProperty("settleDate")]
+        public string SettleDate { get; set; }
+
+        /// <summary>
+        /// 系统跟踪号
+        /// </summary>
+        [JsonProperty("traceNo")]
+        public string TraceNo { get; set; }
+
+        /// <summary>
+        /// 应答码
+        /// </summary>
+        [JsonProperty("respCode")]
+        public string RespCode { get; set; }
+
+        /// <summary>
+        /// 应答信息
+        /// </summary>
+        [JsonProperty("respMsg")]
+        public string RespMsg { get; set; }
+
+        /// <summary>
+        /// 兑换日期
+        /// </summary>
+        [JsonProperty("exchangeDate")]
+        public string ExchangeDate { get; set; }
+
+        /// <summary>
+        /// 签名公钥证书
+        /// </summary>
+        [JsonProperty("signPubKeyCert")]
+        public string SignPubKeyCert { get; set; }
+
+        /// <summary>
+        /// 清算汇率
+        /// </summary>
+        [JsonProperty("exchangeRate")]
+        public string ExchangeRate { get; set; }
+
+        /// <summary>
+        /// 收单机构代码
+        /// </summary>
+        [JsonProperty("acqInsCode")]
+        public string AcqInsCode { get; set; }
+
+        /// <summary>
+        /// 版本号
+        /// </summary>
+        [JsonProperty("version")]
+        public string Version { get; set; }
+
+        /// <summary>
+        /// 编码方式
+        /// </summary>
+        [JsonProperty("encoding")]
+        public string Encoding { get; set; }
+
+        /// <summary>
+        /// 产品类型
+        /// </summary>
+        [JsonProperty("bizType")]
+        public string BizType { get; set; }
+
+        /// <summary>
+        /// 订单发送时间
+        /// </summary>
+        [JsonProperty("txnTime")]
+        public string TxnTime { get; set; }
+
+        /// <summary>
+        /// 交易金额
+        /// </summary>
+        [JsonProperty("txnAmt")]
+        public string TxnAmt { get; set; }
+
+        /// <summary>
+        /// 交易类型
+        /// </summary>
+        [JsonProperty("txnType")]
+        public string TxnType { get; set; }
+
+        /// <summary>
+        /// 交易子类
+        /// </summary>
+        [JsonProperty("txnSubType")]
+        public string TxnSubType { get; set; }
+
+        /// <summary>
+        /// 接入类型
+        /// </summary>
+        [JsonProperty("accessType")]
+        public string AccessType { get; set; }
+
+        /// <summary>
+        /// 请求方保留域
+        /// </summary>
+        [JsonProperty("reqReserved")]
+        public string ReqReserved { get; set; }
+
+        /// <summary>
+        /// 商户代码
+        /// </summary>
+        [JsonProperty("merId")]
+        public string MerId { get; set; }
+
+        /// <summary>
+        /// 商户订单号
+        /// </summary>
+        [JsonProperty("orderId")]
+        public string OrderId { get; set; }
+
+        /// <summary>
+        /// 原交易查询流水号
+        /// </summary>
+        [JsonProperty("origQryId")]
+        public string OrigQryId { get; set; }
+
+        /// <summary>
+        /// 保留域
+        /// </summary>
+        [JsonProperty("reserved")]
+        public string Reserved { get; set; }
+    }
+}

+ 159 - 0
src/Essensoft.AspNetCore.Payment.UnionPay/Request/UnionPayWapPayConsumeUndoRequest.cs

@@ -0,0 +1,159 @@
+using System.Collections.Generic;
+using Essensoft.AspNetCore.Payment.UnionPay.Response;
+
+namespace Essensoft.AspNetCore.Payment.UnionPay.Request
+{
+    /// <summary>
+    /// 手机网页支付(V2.2) 消费撤销接口
+    /// </summary>
+    public class UnionPayWapPayConsumeUndoRequest : IUnionPayRequest<UnionPayWapPayConsumeUndoResponse>
+    {
+        /// <summary>
+        /// 产品类型
+        /// </summary>
+        public string BizType { get; set; }
+
+        /// <summary>
+        /// 订单发送时间
+        /// </summary>
+        public string TxnTime { get; set; }
+
+        /// <summary>
+        /// 后台通知地址
+        /// </summary>
+        public string BackUrl { get; set; }
+
+        /// <summary>
+        /// 交易金额
+        /// </summary>
+        public string TxnAmt { get; set; }
+
+        /// <summary>
+        /// 交易类型
+        /// </summary>
+        public string TxnType { get; set; }
+
+        /// <summary>
+        /// 交易子类
+        /// </summary>
+        public string TxnSubType { get; set; }
+
+        /// <summary>
+        /// 渠道类型
+        /// </summary>
+        public string ChannelType { get; set; }
+
+        /// <summary>
+        /// 商户订单号
+        /// </summary>
+        public string OrderId { get; set; }
+
+        /// <summary>
+        /// 原交易查询流水号
+        /// </summary>
+        public string OrigQryId { get; set; }
+
+        /// <summary>
+        /// 二级商户代码
+        /// </summary>
+        public string SubMerId { get; set; }
+
+        /// <summary>
+        /// 二级商户简称
+        /// </summary>
+        public string SubMerAbbr { get; set; }
+
+        /// <summary>
+        /// 二级商户名称
+        /// </summary>
+        public string SubMerName { get; set; }
+
+        /// <summary>
+        /// 商户简称
+        /// </summary>
+        public string MerAbbr { get; set; }
+
+        /// <summary>
+        /// 商户类别
+        /// </summary>
+        public string MerCatCode { get; set; }
+
+        /// <summary>
+        /// 商户名称
+        /// </summary>
+        public string MerName { get; set; }
+
+        /// <summary>
+        /// 收单机构代码
+        /// </summary>
+        public string AcqInsCode { get; set; }
+
+        /// <summary>
+        /// 保留域
+        /// </summary>
+        public string Reserved { get; set; }
+
+        /// <summary>
+        /// 请求方保留域
+        /// </summary>
+        public string ReqReserved { get; set; }
+
+        /// <summary>
+        /// 终端号
+        /// </summary>
+        public string TermId { get; set; }
+
+        #region IUnionPayRequest
+
+        private string version = string.Empty;
+
+        public string GetApiVersion()
+        {
+            return version;
+        }
+
+        public void SetApiVersion(string version)
+        {
+            this.version = version;
+        }
+
+        public IDictionary<string, string> GetParameters()
+        {
+            var parameters = new UnionPayDictionary
+            {
+                { "bizType", BizType },
+                { "txnTime", TxnTime },
+                { "backUrl", BackUrl },
+                { "txnAmt", TxnAmt },
+                { "txnType", TxnType },
+                { "txnSubType", TxnSubType },
+                { "channelType", ChannelType },
+                { "orderId", OrderId },
+                { "origQryId", OrigQryId },
+                { "subMerId", SubMerId },
+                { "subMerAbbr", SubMerAbbr },
+                { "subMerName", SubMerName },
+                { "merAbbr", MerAbbr },
+                { "merCatCode", MerCatCode },
+                { "merName", MerName },
+                { "acqInsCode", AcqInsCode },
+                { "reserved", Reserved },
+                { "reqReserved", ReqReserved },
+                { "termId", TermId }
+            };
+            return parameters;
+        }
+
+        public string GetRequestUrl(bool isTest)
+        {
+            return isTest ? "https://101.231.204.80:5000/gateway/api/backTransReq.do" : "https://gateway.95516.com/gateway/api/backTransReq.do";
+        }
+
+        public bool HasEncryptCertId()
+        {
+            return false;
+        }
+
+        #endregion
+    }
+}

+ 130 - 0
src/Essensoft.AspNetCore.Payment.UnionPay/Response/UnionPayWapPayConsumeUndoResponse.cs

@@ -0,0 +1,130 @@
+using Newtonsoft.Json;
+
+namespace Essensoft.AspNetCore.Payment.UnionPay.Response
+{
+    /// <summary>
+    /// 手机网页支付(V2.2) 消费撤销接口 - 应答报文
+    /// </summary>
+    public class UnionPayWapPayConsumeUndoResponse : UnionPayResponse
+    {
+        /// <summary>
+        /// 查询流水号
+        /// </summary>
+        [JsonProperty("queryId")]
+        public string QueryId { get; set; }
+
+        /// <summary>
+        /// 签名
+        /// </summary>
+        [JsonProperty("signature")]
+        public string Signature { get; set; }
+
+        /// <summary>
+        /// 签名方法
+        /// </summary>
+        [JsonProperty("signMethod")]
+        public string SignMethod { get; set; }
+
+        /// <summary>
+        /// 应答码
+        /// </summary>
+        [JsonProperty("respCode")]
+        public string RespCode { get; set; }
+
+        /// <summary>
+        /// 应答信息
+        /// </summary>
+        [JsonProperty("respMsg")]
+        public string RespMsg { get; set; }
+
+        /// <summary>
+        /// 签名公钥证书
+        /// </summary>
+        [JsonProperty("signPubKeyCert")]
+        public string SignPubKeyCert { get; set; }
+
+        /// <summary>
+        /// 收单机构代码
+        /// </summary>
+        [JsonProperty("acqInsCode")]
+        public string AcqInsCode { get; set; }
+
+        /// <summary>
+        /// 版本号
+        /// </summary>
+        [JsonProperty("version")]
+        public string Version { get; set; }
+
+        /// <summary>
+        /// 编码方式
+        /// </summary>
+        [JsonProperty("encoding")]
+        public string Encoding { get; set; }
+
+        /// <summary>
+        /// 产品类型
+        /// </summary>
+        [JsonProperty("bizType")]
+        public string BizType { get; set; }
+
+        /// <summary>
+        /// 订单发送时间
+        /// </summary>
+        [JsonProperty("txnTime")]
+        public string TxnTime { get; set; }
+
+        /// <summary>
+        /// 交易金额
+        /// </summary>
+        [JsonProperty("txnAmt")]
+        public string TxnAmt { get; set; }
+
+        /// <summary>
+        /// 交易类型
+        /// </summary>
+        [JsonProperty("txnType")]
+        public string TxnType { get; set; }
+
+        /// <summary>
+        /// 交易子类
+        /// </summary>
+        [JsonProperty("txnSubType")]
+        public string TxnSubType { get; set; }
+
+        /// <summary>
+        /// 接入类型
+        /// </summary>
+        [JsonProperty("accessType")]
+        public string AccessType { get; set; }
+
+        /// <summary>
+        /// 请求方保留域
+        /// </summary>
+        [JsonProperty("reqReserved")]
+        public string ReqReserved { get; set; }
+
+        /// <summary>
+        /// 商户代码
+        /// </summary>
+        [JsonProperty("merId")]
+        public string MerId { get; set; }
+
+        /// <summary>
+        /// 商户订单号
+        /// </summary>
+        [JsonProperty("orderId")]
+        public string OrderId { get; set; }
+
+        /// <summary>
+        /// 原交易查询流水号
+        /// </summary>
+        [JsonProperty("origQryId")]
+        public string OrigQryId { get; set; }
+
+        /// <summary>
+        /// 保留域
+        /// </summary>
+        [JsonProperty("reserved")]
+        public string Reserved { get; set; }
+    }
+}