• c# 红袖支付(速邦,随行付)B扫C接口


    红袖支付: http://www.redxiu.com.cn/home.asp

        /// <summary>
        /// 红袖支付(速邦)(随行付)
        /// </summary>
        public class HXPayHelper
        {
            /// <summary>
            /// 支付
            /// </summary>
            /// <param name="merchatNO">商户号</param>
            /// <param name="terminalID">终端号</param>
            /// <param name="accessToken">令牌</param>
            /// <param name="terminalTrace">订单号</param>
            /// <param name="authNO">付款码(扫码盒扫描微信二维码得到的字符串)</param>
            /// <param name="amount">金额(分)</param>
            /// <returns></returns>
            public string Pay(string merchatNO, string terminalID, string accessToken, string terminalTrace, string authNO, int amount)
            {
                HXPayReq req = new HXPayReq()
                {
                    pay_ver = "100",
                    pay_type = "000",
                    service_id = "010",
                    merchant_no = merchatNO,
                    terminal_id = terminalID,
                    terminal_trace = terminalTrace,
                    terminal_time = DateTime.Now.ToString("yyyyMMddHHmmss"),
                    auth_no = authNO,
                    total_fee = amount.ToString()
                };
                req.SetSign(accessToken);
                string postStr = JsonConvert.SerializeObject(req);
                string url = "http://pay.redxiu.com.cn/pay/110/barcodepay";
                return HttpPost(url, postStr);
            }
    
            /// <summary>
            /// 查询(微信金额大于1000时需要输入密码,可以不断调此接口去查询支付结果)
            /// </summary>
            /// <param name="merchatNO">商户号</param>
            /// <param name="terminalID">终端号</param>
            /// <param name="accessToken">令牌</param>
            /// <param name="terminalTrace">订单号</param>
            /// <param name="outTradeNO">红袖订单号</param>
            /// <returns></returns>
            public string Query(string merchatNO, string terminalID, string accessToken, string terminalTrace, string outTradeNO)
            {
                HXPayQueryReq req = new HXPayQueryReq()
                {
                    pay_ver = "100",
                    pay_type = "000",
                    service_id = "010",
                    merchant_no = merchatNO,
                    terminal_id = terminalID,
                    terminal_trace = terminalTrace,
                    terminal_time = DateTime.Now.ToString("yyyyMMddHHmmss"),
                    out_trade_no = outTradeNO
                };
                req.SetSign(accessToken);
                string postStr = JsonConvert.SerializeObject(req);
                string url = "http://pay.redxiu.com.cn/pay/110/query";
                return HttpPost(url, postStr);
            }
    
            /// <summary>
            /// 退款
            /// </summary>
            /// <param name="merchatNO">商户号</param>
            /// <param name="terminalID">终端号</param>
            /// <param name="accessToken">令牌</param>
            /// <param name="terminalTrace">订单号</param>
            /// <param name="outTradeNO">红袖订单号</param>
            /// <param name="amount">金额(建议全额退款)</param>
            /// <returns></returns>
            public string Refund(string merchatNO, string terminalID, string accessToken, string terminalTrace, string outTradeNO, int amount)
            {
                HXRefundReq req = new HXRefundReq()
                {
                    pay_ver = "100",
                    pay_type = "000",
                    service_id = "010",
                    merchant_no = merchatNO,
                    terminal_id = terminalID,
                    terminal_trace = terminalTrace,
                    terminal_time = DateTime.Now.ToString("yyyyMMddHHmmss"),
                    out_trade_no = outTradeNO,
                    refund_fee = amount.ToString()
                };
                req.SetSign(accessToken);
                string postStr = JsonConvert.SerializeObject(req);
                string url = "http://pay.redxiu.com.cn/pay/110/refund";
                return HttpPost(url, postStr);
            }
    
            /// <summary>
            /// 退款查询
            /// </summary>
            /// <param name="merchatNO">商户号</param>
            /// <param name="terminalID">终端号</param>
            /// <param name="accessToken">令牌</param>
            /// <param name="terminalTrace">订单号</param>
            /// <param name="outTradeNO">红袖订单号</param>
            /// <returns></returns>
            public string RefundQuery(string merchatNO, string terminalID, string accessToken, string terminalTrace, string outTradeNO)
            {
                HXRefundQueryReq req = new HXRefundQueryReq()
                {
                    pay_ver = "100",
                    pay_type = "000",
                    service_id = "010",
                    merchant_no = merchatNO,
                    terminal_id = terminalID,
                    terminal_trace = terminalTrace,
                    terminal_time = DateTime.Now.ToString("yyyyMMddHHmmss"),
                    out_refund_no = outTradeNO
                };
                req.SetSign(accessToken);
                string postStr = JsonConvert.SerializeObject(req);
                string url = "http://pay.redxiu.com.cn/pay/110/refundQuery";
                return HttpPost(url, postStr);
            }
    
            private string HttpPost(string url, string data)
            {
                using (HttpClient client = new HttpClient())
                {
                    using (HttpContent httpContent = new StringContent(data, Encoding.UTF8, "application/json"))
                    {
                        HttpResponseMessage response = client.PostAsync(url, httpContent).Result;
                        return response.Content.ReadAsStringAsync().Result;
                    }
                }
            }
    
            public static string MD5(string str)
            {
                MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
                string t2 = BitConverter.ToString(md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(str)));
                t2 = t2.Replace("-", "");
                return t2;
            }
    
            /// <summary>
            /// 支付请求
            /// </summary>
            public class HXPayReq
            {
                /// <summary>
                /// 版本号 100
                /// </summary>
                public string pay_ver { get; set; }
                /// <summary>
                /// 请求类型:000自动识别微信支付宝等
                /// </summary>
                public string pay_type { get; set; }
                /// <summary>
                /// 接口类型010
                /// </summary>
                public string service_id { get; set; }
                /// <summary>
                /// 商户号
                /// </summary>
                public string merchant_no { get; set; }
                /// <summary>
                /// 终端号
                /// </summary>
                public string terminal_id { get; set; }
                /// <summary>
                /// 终端流水号
                /// </summary>
                public string terminal_trace { get; set; }
                /// <summary>
                /// 终端交易时间
                /// </summary>
                public string terminal_time { get; set; }
                /// <summary>
                /// 授权码   二维码
                /// </summary>
                public string auth_no { get; set; }
                /// <summary>
                /// 金额  分
                /// </summary>
                public string total_fee { get; set; }
                /// <summary>
                /// 按字典序排列参数+access_token utf8 32位大写md5加密
                /// </summary>
                public string key_sign { get; set; }
    
                /// <summary>
                /// 签名
                /// </summary>
                /// <param name="accessToken"></param>
                public void SetSign(string accessToken)
                {
                    string str = "";
                    str += "auth_no=" + this.auth_no + "&";
                    str += "merchant_no=" + this.merchant_no + "&";
                    str += "pay_type=" + this.pay_type + "&";
                    str += "pay_ver=" + this.pay_ver + "&";
                    str += "service_id=" + this.service_id + "&";
                    str += "terminal_id=" + this.terminal_id + "&";
                    str += "terminal_time=" + this.terminal_time + "&";
                    str += "terminal_trace=" + this.terminal_trace + "&";
                    str += "total_fee=" + this.total_fee + "&";
                    str += "access_token=" + accessToken;
                    this.key_sign = HXPayHelper.MD5(str);
                }
            }
            /// <summary>
            /// 查询订单
            /// </summary>
            public class HXPayQueryReq
            {
                /// <summary>
                /// 版本号 100
                /// </summary>
                public string pay_ver { get; set; }
                /// <summary>
                /// 请求类型:000自动识别微信支付宝等
                /// </summary>
                public string pay_type { get; set; }
                /// <summary>
                /// 接口类型010
                /// </summary>
                public string service_id { get; set; }
                /// <summary>
                /// 商户号
                /// </summary>
                public string merchant_no { get; set; }
                /// <summary>
                /// 终端号
                /// </summary>
                public string terminal_id { get; set; }
                /// <summary>
                /// 终端流水号
                /// </summary>
                public string terminal_trace { get; set; }
                /// <summary>
                /// 终端交易时间
                /// </summary>
                public string terminal_time { get; set; }
                /// <summary>
                /// 订单号,查询凭据
                /// </summary>
                public string out_trade_no { get; set; }
                /// <summary>
                /// 按字典序排列参数+access_token utf8 32位大写md5加密
                /// </summary>
                public string key_sign { get; set; }
    
                public void SetSign(string accessToken)
                {
                    string str = "";
                    str += "merchant_no=" + this.merchant_no + "&";
                    str += "out_trade_no=" + this.out_trade_no + "&";
                    str += "pay_type=" + this.pay_type + "&";
                    str += "pay_ver=" + this.pay_ver + "&";
                    str += "service_id=" + this.service_id + "&";
                    str += "terminal_id=" + this.terminal_id + "&";
                    str += "terminal_time=" + this.terminal_time + "&";
                    str += "terminal_trace=" + this.terminal_trace + "&";
                    str += "access_token=" + accessToken;
                    this.key_sign = HXPayHelper.MD5(str);
                }
            }
            /// <summary>
            /// 退款申请
            /// </summary>
            public class HXRefundReq
            {
                /// <summary>
                /// 版本号 100
                /// </summary>
                public string pay_ver { get; set; }
                /// <summary>
                /// 请求类型:000自动识别微信支付宝等
                /// </summary>
                public string pay_type { get; set; }
                /// <summary>
                /// 接口类型010
                /// </summary>
                public string service_id { get; set; }
                /// <summary>
                /// 商户号
                /// </summary>
                public string merchant_no { get; set; }
                /// <summary>
                /// 终端号
                /// </summary>
                public string terminal_id { get; set; }
                /// <summary>
                /// 终端流水号
                /// </summary>
                public string terminal_trace { get; set; }
                /// <summary>
                /// 终端交易时间
                /// </summary>
                public string terminal_time { get; set; }
                /// <summary>
                /// 退款金额
                /// </summary>
                public string refund_fee { get; set; }
                /// <summary>
                /// 订单号,查询凭据
                /// </summary>
                public string out_trade_no { get; set; }
                /// <summary>
                /// 按字典序排列参数+access_token utf8 32位大写md5加密
                /// </summary>
                public string key_sign { get; set; }
    
                public void SetSign(string accessToken)
                {
                    string str = "";
                    str += "merchant_no=" + this.merchant_no + "&";
                    str += "out_trade_no=" + this.out_trade_no + "&";
                    str += "pay_type=" + this.pay_type + "&";
                    str += "pay_ver=" + this.pay_ver + "&";
                    str += "refund_fee=" + this.refund_fee + "&";
                    str += "service_id=" + this.service_id + "&";
                    str += "terminal_id=" + this.terminal_id + "&";
                    str += "terminal_time=" + this.terminal_time + "&";
                    str += "terminal_trace=" + this.terminal_trace + "&";
                    str += "access_token=" + accessToken;
                    this.key_sign = HXPayHelper.MD5(str);
                }
            }
            /// <summary>
            /// 退款查询
            /// </summary>
            public class HXRefundQueryReq
            {
                /// <summary>
                /// 版本号 100
                /// </summary>
                public string pay_ver { get; set; }
                /// <summary>
                /// 请求类型:000自动识别微信支付宝等
                /// </summary>
                public string pay_type { get; set; }
                /// <summary>
                /// 接口类型010
                /// </summary>
                public string service_id { get; set; }
                /// <summary>
                /// 商户号
                /// </summary>
                public string merchant_no { get; set; }
                /// <summary>
                /// 终端号
                /// </summary>
                public string terminal_id { get; set; }
                /// <summary>
                /// 终端流水号
                /// </summary>
                public string terminal_trace { get; set; }
                /// <summary>
                /// 终端交易时间
                /// </summary>
                public string terminal_time { get; set; }
                /// <summary>
                /// 订单号,查询凭据
                /// </summary>
                public string out_refund_no { get; set; }
                /// <summary>
                /// 按字典序排列参数+access_token utf8 32位大写md5加密
                /// </summary>
                public string key_sign { get; set; }
    
                public void SetSign(string accessToken)
                {
                    string str = "";
                    str += "merchant_no=" + this.merchant_no + "&";
                    str += "out_refund_no=" + this.out_refund_no + "&";
                    str += "pay_type=" + this.pay_type + "&";
                    str += "pay_ver=" + this.pay_ver + "&";
                    str += "service_id=" + this.service_id + "&";
                    str += "terminal_id=" + this.terminal_id + "&";
                    str += "terminal_time=" + this.terminal_time + "&";
                    str += "terminal_trace=" + this.terminal_trace + "&";
                    str += "access_token=" + accessToken;
                    this.key_sign = HXPayHelper.MD5(str);
                }
            }
        }
  • 相关阅读:
    Qt 模拟一个导航定位系统
    【编程之美】用C语言实现状态机(实用)
    代码面试之链表
    乾坤合一~Linux设备驱动之USB主机和设备驱动
    乾坤合一~Linux设备驱动之I2C核心、总线以及设备驱动
    乾坤合一~Linux设备驱动之终端设备驱动
    乾坤合一~Linux设备驱动之块设备驱动
    蜕变成蝶~Linux设备驱动之watchdog设备驱动
    蜕变成蝶~Linux设备驱动之按键设备驱动
    蜕变成蝶~Linux设备驱动之DMA
  • 原文地址:https://www.cnblogs.com/aitong/p/14605147.html
Copyright © 2020-2023  润新知