Files
juipnet/Services/Hncore.Pass.PaymentCenter/Pay/WeiFuTong/QueryOrder/WeiFuTongQueryOrderResponse.cs

221 lines
7.3 KiB
C#
Raw Normal View History

2020-10-07 20:25:03 +08:00
using System;
using System.Globalization;
using System.Xml.Serialization;
using Hncore.Pass.PaymentCenter.Domain;
namespace Hncore.Pass.PaymentCenter.WeiFuTong.SwipeCard
{
/// <summary>
/// 刷卡支付查询订单响应
/// </summary>
[XmlRoot("xml", Namespace = "")]
public class WeiFuTongQueryOrderResponse : WeiFuTongResponseBase
{
// 以下字段在 status 为 0的时候有返回
/// <summary>
/// 门店编号,由平台分配
/// </summary>
[XmlElement("mch_id")]
public string MchId { get; set; }
/// <summary>
/// 终端设备号
/// </summary>
[XmlElement("device_info")]
public string DeviceInfo { get; set; }
// 以下字段在 status 和 result_code 都为 0的时候有返回
/// <summary>
/// SUCCESS—支付成功
/// REFUND—转入退款
/// NOTPAY—未支付
/// CLOSED—已关闭
/// REVOKED/REVERSE—已撤销
/// USERPAYING—用户支付中
/// PAYERROR—支付失败(其他原因,如银行返回失败)
/// </summary>
[XmlElement("trade_state")]
public string TradeState { get; set; }
// 以下字段在 trade_state为 SUCCESS的时候有返回
/// <summary>
/// pay.wechat.micropay——微信刷卡支付
/// pay.alipay.micropay——支付宝刷卡支付
/// pay.jdpay.micropay——京东刷卡支付
/// pay.qq.micropay——QQ钱包刷卡支付
/// pay.shiming.micropay——会员卡支付
/// pay.unionpay.micropay——银联支付
/// pay.bestpay.micropay——翼支付
/// </summary>
[XmlElement("trade_type")]
public string TradeType { get; set; }
/// <summary>
/// 受理商户appid
/// </summary>
[XmlElement("appid")]
public string AppId { get; set; }
/// <summary>
/// 子商户appid
/// </summary>
[XmlElement("sub_appid")]
public string SubAppId { get; set; }
/// <summary>
/// 用户在受理商户 appid 下的唯一标识
/// </summary>
[XmlElement("openid")]
public string OpenId { get; set; }
/// <summary>
/// 用户在子商户appid下的唯一标识
/// </summary>
[XmlElement("sub_openid")]
public string SubOpenId { get; set; }
/// <summary>
/// 用户是否关注公众账号Y-关注N-未关注,仅在公众账号类型支付有效
/// </summary>
[XmlElement("is_subscribe")]
public string IsSubscribe { get; set; }
/// <summary>
/// 用户是否关注子公众账号Y-关注N-未关注,仅在公众账号类型支付有效
/// </summary>
[XmlElement("sub_is_subscribe")]
public string SubIsSubscribe { get; set; }
/// <summary>
/// 平台交易号
/// </summary>
[XmlElement("transaction_id")]
public string TransactionId { get; set; }
/// <summary>
/// 第三方订单号
/// </summary>
[XmlElement("out_transaction_id")]
public string OutTransactionId { get; set; }
/// <summary>
/// 第三方商户单号,可在支持的商户扫码退款
/// </summary>
[XmlElement("third_order_no")]
public string ThirdOrderNo { get; set; }
/// <summary>
/// 商户系统内部的定单号32个字符内、可包含字母
/// </summary>
[XmlElement("out_trade_no")]
public string OutTradeNo { get; set; }
/// <summary>
/// 总金额,以分为单位,不允许包含任何字、符号
/// </summary>
[XmlElement("total_fee")]
public int TotalFee { get; set; }
/// <summary>
/// 现金支付金额【微信】
/// </summary>
[XmlElement("cash_fee")]
public int CashFee { get; set; }
/// <summary>
/// 开票金额 【支付宝】
/// </summary>
[XmlElement("invoice_amount")]
public string InvoiceAmount { get; set; }
/// <summary>
/// 实收金额【支付宝】实收金额,单位为元,两位小数。该金额为本笔交易,商户账户能够实际收到的金额
/// </summary>
[XmlElement("receipt_amount")]
public string ReceiptAmount { get; set; }
/// <summary>
/// 买家实付金额【支付宝】买家实付金额,单位为元,两位小数。该金额代表该笔交易买家实际支付的金额,不包含商户折扣等金额
/// </summary>
[XmlElement("buyer_pay_amount")]
public string BuyerPayAmount { get; set; }
/// <summary>
/// 集分宝付款金额【支付宝】
/// </summary>
[XmlElement("point_amount")]
public string PointAmount { get; set; }
/// <summary>
/// 现金券金额【微信】
/// </summary>
[XmlElement("coupon_fee")]
public string CouponFee { get; set; }
/// <summary>
/// 货币类型,符合 ISO 4217 标准的三位字母代码默认人民币CNY
/// </summary>
[XmlElement("fee_type")]
public string FeeType { get; set; }
/// <summary>
/// 商家数据包,原样返回
/// </summary>
[XmlElement("attach")]
public string Attach { get; set; }
/// <summary>
/// 付款银行
/// </summary>
[XmlElement("bank_type")]
public string BankType { get; set; }
/// <summary>
/// 银行订单号,若为微信支付则为空
/// </summary>
[XmlElement("bank_billno")]
public string BankBillno { get; set; }
/// <summary>
/// 支付完成时间格式为yyyyMMddHHmmss如2009年12月27日9点10分10秒表示为20091227091010。时区为GMT+8 beijing。该时间取自平台服务器
/// </summary>
[XmlElement("time_end")]
public string TimeEnd { get; set; }
/// <summary>
/// 是否支付成功
/// </summary>
/// <returns></returns>
public bool IsPaySuccess()
{
return !HasError() && (TradeState == "SUCCESS" || TradeState == "REFUND");
}
/// <summary>
/// 是否为支付失败,未支付和支付中不认定为失败
/// </summary>
/// <returns></returns>
public bool IsPayFailed()
{
return !HasError()
&& TradeState != "SUCCESS"
&& TradeState != "NOTPAY"
&& TradeState != "USERPAYING"
&& TradeState != "REFUND";
}
/// <summary>
/// 获取支付成功时间
/// </summary>
/// <returns></returns>
public DateTime GetPaySuccessTime()
{
DateTime.TryParseExact(TimeEnd, "yyyyMMddHHmmss", null, DateTimeStyles.None, out var paySuccessTime);
return paySuccessTime;
}
}
}