コード例 #1
0
        /// <summary>
        /// 查询订单 请求参数[境内服务商]
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="subAppId"></param>
        /// <param name="mchId"></param>
        /// <param name="outTradeNo"></param>
        /// <param name="signType"></param>
        /// <param name="key"></param>
        /// <param name="subMchId"></param>
        /// <param name="transactionId"></param>
        /// <param name="nonceStr"></param>
        public TenPayV3OrderQueryRequestData(string appId, string subAppId, string mchId, string subMchId, string transactionId, string nonceStr,
            string outTradeNo, string key, string signType = null)
        {
            AppId = appId;
            SubAppId = subAppId;
            MchId = mchId;
            SubMchId = subMchId;
            NonceStr = nonceStr;
            TransactionId = transactionId;
            OutTradeNo = outTradeNo;
            SignType = signType;
            Key = key;

            #region 设置RequestHandler

            PackageRequestHandler = new RequestHandler(null);

            //设置package订单参数
            PackageRequestHandler.SetParameter("appid", this.AppId); //公众账号ID
            PackageRequestHandler.SetParameterWhenNotNull("sub_appid", this.SubAppId); //子商户公众账号ID
            PackageRequestHandler.SetParameter("mch_id", this.MchId); //商户号
            PackageRequestHandler.SetParameterWhenNotNull("sub_mch_id", this.SubMchId); //子商户号
            PackageRequestHandler.SetParameter("transaction_id", this.TransactionId ?? ""); //微信的订单号
            PackageRequestHandler.SetParameter("out_trade_no", this.OutTradeNo ?? ""); //商户系统内部的订单号
            PackageRequestHandler.SetParameter("nonce_str", this.NonceStr); //随机字符串
            PackageRequestHandler.SetParameterWhenNotNull("sign_type", this.SignType); //签名类型
            Sign = PackageRequestHandler.CreateMd5Sign("key", this.Key);
            PackageRequestHandler.SetParameter("sign", Sign); //签名
            #endregion
        }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="mchId"></param>
        /// <param name="body"></param>
        /// <param name="outTradeNo"></param>
        /// <param name="totalFee">单位:分</param>
        /// <param name="spbillCreateIp"></param>
        /// <param name="notifyUrl"></param>
        /// <param name="tradeType"></param>
        /// <param name="openid"></param>
        /// <param name="key"></param>
        /// <param name="nonceStr"></param>
        /// <param name="deviceInfo">自定义参数,可以为终端设备号(门店号或收银设备ID),PC网页或公众号内支付可以传"WEB",String(32)如:013467007045764</param>
        /// <param name="timeStart">订单生成时间,如果为空,则默认为当前服务器时间</param>
        /// <param name="timeExpire">订单失效时间,留空则不设置失效时间</param>
        /// <param name="detail">商品详细列表</param>
        /// <param name="attach">附加数据</param>
        /// <param name="feeType">符合ISO 4217标准的三位字母代码,默认人民币:CNY</param>
        /// <param name="goodsTag">商品标记,使用代金券或立减优惠功能时需要的参数,说明详见代金券或立减优惠。String(32),如:WXG</param>
        /// <param name="productId">trade_type=NATIVE时(即扫码支付),此参数必传。此参数为二维码中包含的商品ID,商户自行定义。String(32),如:12235413214070356458058</param>
        /// <param name="limitPay">是否限制用户不能使用信用卡支付</param>
        public TenPayV3UnifiedorderRequestData(string appId, string mchId, string body, string outTradeNo, int totalFee, string spbillCreateIp,
                                               string notifyUrl, TenPayV3Type tradeType, string openid, string key, string nonceStr,
                                               string deviceInfo = null, DateTime?timeStart = null, DateTime?timeExpire = null,
                                               string detail     = null, string attach      = null, string feeType = "CNY", string goodsTag = null, string productId = null, bool limitPay = false)
        {
            AppId          = appId;
            MchId          = mchId;
            DeviceInfo     = deviceInfo;
            NonceStr       = nonceStr;
            SignType       = "MD5";
            Body           = body ?? "Senparc TenpayV3";
            Detail         = detail;
            Attach         = attach;
            OutTradeNo     = outTradeNo;
            FeeType        = feeType;
            TotalFee       = totalFee;
            SpbillCreateIP = spbillCreateIp;
            TimeStart      = (timeStart ?? DateTime.Now).ToString("yyyyMMddHHmmss");
            TimeExpire     = timeExpire.HasValue ? timeExpire.Value.ToString("yyyyMMddHHmmss") : null;
            GoodsTag       = goodsTag;
            NotifyUrl      = notifyUrl;
            TradeType      = tradeType;
            ProductId      = productId;
            LimitPay       = limitPay ? "no_credit" : null;
            OpenId         = openid;
            Key            = key;

            #region 设置RequestHandler

            //创建支付应答对象
            PackageRequestHandler = new RequestHandler(null);
            //初始化
            PackageRequestHandler.Init();

            //设置package订单参数
            //以下设置顺序按照官方文档排序,方便维护:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1
            PackageRequestHandler.SetParameter("appid", this.AppId);                       //公众账号ID
            PackageRequestHandler.SetParameter("mch_id", this.MchId);                      //商户号
            PackageRequestHandler.SetParameterWhenNotNull("device_info", this.DeviceInfo); //自定义参数
            PackageRequestHandler.SetParameter("nonce_str", this.NonceStr);                //随机字符串
            PackageRequestHandler.SetParameterWhenNotNull("sign_type", this.SignType);     //签名类型,默认为MD5
            PackageRequestHandler.SetParameter("body", this.Body);                         //商品信息
            PackageRequestHandler.SetParameterWhenNotNull("detail", this.Detail);          //商品详细列表
            PackageRequestHandler.SetParameterWhenNotNull("attach", this.Attach);          //附加数据
            PackageRequestHandler.SetParameter("out_trade_no", this.OutTradeNo);           //商家订单号
            PackageRequestHandler.SetParameterWhenNotNull("fee_type", this.FeeType);       //符合ISO 4217标准的三位字母代码,默认人民币:CNY
            PackageRequestHandler.SetParameter("total_fee", this.TotalFee.ToString());     //商品金额,以分为单位(money * 100).ToString()
            PackageRequestHandler.SetParameter("spbill_create_ip", this.SpbillCreateIP);   //用户的公网ip,不是商户服务器IP
            PackageRequestHandler.SetParameterWhenNotNull("time_start", this.TimeStart);   //订单生成时间
            PackageRequestHandler.SetParameterWhenNotNull("time_expire", this.TimeExpire); //订单失效时间
            PackageRequestHandler.SetParameterWhenNotNull("goods_tag", this.GoodsTag);     //商品标记
            PackageRequestHandler.SetParameter("notify_url", this.NotifyUrl);              //接收财付通通知的URL
            PackageRequestHandler.SetParameter("trade_type", this.TradeType.ToString());   //交易类型
            PackageRequestHandler.SetParameterWhenNotNull("product_id", this.ProductId);   //trade_type=NATIVE时(即扫码支付),此参数必传。
            PackageRequestHandler.SetParameterWhenNotNull("limit_pay", this.LimitPay);     //上传此参数no_credit--可限制用户不能使用信用卡支付
            PackageRequestHandler.SetParameter("openid", this.OpenId);                     //用户的openId,trade_type=JSAPI时(即公众号支付),此参数必传
            Sign = PackageRequestHandler.CreateMd5Sign("key", this.Key);
            PackageRequestHandler.SetParameter("sign", Sign);                              //签名
            #endregion
        }
コード例 #3
0
        /// <summary>
        /// 下载对账单
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="mchId"></param>
        /// <param name="nonceStr"></param>
        /// <param name="deviceInfo"></param>
        /// <param name="billDate"></param>
        /// <param name="billType"></param>
        /// <param name="key"></param>
        /// <param name="tarType"></param>
        /// <param name="signType"></param>
        public TenPayV3DownloadBillRequestData(string appId, string mchId, string nonceStr, string deviceInfo,
                                               string billDate, string billType, string key, string tarType = "GZIP", string signType = "MD5")
        {
            PackageRequestHandler = new RequestHandler();

            AppId      = appId;
            MchId      = mchId;
            NonceStr   = nonceStr;
            DeviceInfo = deviceInfo;
            BillDate   = billDate;
            BillType   = billType;
            SignType   = signType;
            TarType    = tarType;
            Key        = key;

            #region 设置RequestHandler

            //设置package订单参数
            PackageRequestHandler.SetParameter("appid", this.AppId);                       //公众账号ID
            PackageRequestHandler.SetParameter("mch_id", this.MchId);                      //商户号
            PackageRequestHandler.SetParameterWhenNotNull("device_info", this.DeviceInfo); //设备号
            PackageRequestHandler.SetParameter("nonce_str", this.NonceStr);                //随机字符串
            PackageRequestHandler.SetParameterWhenNotNull("sign_type", this.SignType);     //签名类型
            PackageRequestHandler.SetParameter("bill_date", this.BillDate);                //对账单日期
            PackageRequestHandler.SetParameter("bill_type", this.BillType);                //账单类型
            PackageRequestHandler.SetParameterWhenNotNull("tar_type", this.TarType);       //压缩账单

            Sign = PackageRequestHandler.CreateMd5Sign("key", this.Key);
            PackageRequestHandler.SetParameter("sign", Sign); //签名

            #endregion
        }
コード例 #4
0
        public TenPayV3PayBankRequestData(string mchId, string nonceStr, string key, string partnerTradeNumber, string encBankNumber, string encTrueName, string bankCode, string amount, string desc = "")
        {
            this.MchId              = mchId;
            this.NonceStr           = nonceStr;
            this.Key                = key;
            this.PartnerTradeNumber = partnerTradeNumber;
            this.EncBankNumber      = encBankNumber;
            this.EncTrueName        = encTrueName;
            this.BankCode           = bankCode;
            this.Amount             = int.Parse(amount);
            this.Desc               = desc;

            #region 设置RequestHandler

            //创建支付应答对象
            PackageRequestHandler = new RequestHandler(null);
            //初始化
            PackageRequestHandler.Init();
            //设置package订单参数
            PackageRequestHandler.SetParameter("nonce_str", this.NonceStr);                  //随机字符串
            PackageRequestHandler.SetParameter("partner_trade_no", this.PartnerTradeNumber); //商户订单号
            PackageRequestHandler.SetParameter("mch_id", this.MchId);                        //商户号
            PackageRequestHandler.SetParameter("enc_bank_no", this.EncBankNumber);
            PackageRequestHandler.SetParameter("enc_true_name", this.EncTrueName);
            PackageRequestHandler.SetParameter("bank_code", this.BankCode);
            PackageRequestHandler.SetParameter("amount", this.Amount.ToString());
            PackageRequestHandler.SetParameterWhenNotNull("desc", this.Desc);



            Sign = PackageRequestHandler.CreateMd5Sign("key", this.Key);
            PackageRequestHandler.SetParameter("sign", Sign); //签名

            #endregion
        }
コード例 #5
0
        /// <summary>
        /// 查询退款 请求参数
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="mchId"></param>
        /// <param name="key"></param>
        /// <param name="nonceStr"></param>
        /// <param name="deviceInfo"></param>
        /// <param name="transactionId"></param>
        /// <param name="outTradeNo"></param>
        /// <param name="outRefundNo"></param>
        /// <param name="refundId"></param>
        /// <param name="subAppid">(非必填)微信分配的子商户公众账号ID,如:1900000109</param>
        /// <param name="subMchId">微信支付分配的子商户号,如:wx8888888888888888</param>
        /// <param name="offset">(非必填)偏移量,当部分退款次数超过10次时可使用,表示返回的查询结果从这个偏移量开始取记录,如:15</param>
        /// <param name="signType"></param>
        public TenPayV3RefundQueryRequestData(string appId, string mchId, string key, string nonceStr, string deviceInfo,
                                              string transactionId, string outTradeNo, string outRefundNo, string refundId, string subAppid = null, string subMchId = null, int?offset = null, string signType = "MD5")
        {
            AppId         = appId;
            MchId         = mchId;
            NonceStr      = nonceStr;
            DeviceInfo    = deviceInfo;
            TransactionId = transactionId;
            OutTradeNo    = outTradeNo;
            OutRefundNo   = outRefundNo;
            RefundId      = refundId;
            SubAppId      = subAppid;
            SubMchId      = subMchId;
            Offset        = offset;
            SignType      = signType;
            Key           = key;

            #region 设置RequestHandler

            //创建支付应答对象
            PackageRequestHandler = new RequestHandler(null);
            //初始化
            PackageRequestHandler.Init();
            //设置package订单参数
            PackageRequestHandler.SetParameter("appid", this.AppId);        //公众账号ID
            PackageRequestHandler.SetParameter("mch_id", this.MchId);       //商户号
            PackageRequestHandler.SetParameter("device_info", this.DeviceInfo);
            PackageRequestHandler.SetParameter("nonce_str", this.NonceStr); //随机字符串
            PackageRequestHandler.SetParameter("sign_type", this.SignType);
            PackageRequestHandler.SetParameter("transaction_id", this.TransactionId);
            PackageRequestHandler.SetParameter("out_trade_no", this.OutTradeNo);
            PackageRequestHandler.SetParameter("out_refund_no", this.OutRefundNo);
            PackageRequestHandler.SetParameter("refund_id", this.RefundId);
            PackageRequestHandler.SetParameterWhenNotNull("sub_appid", this.SubAppId);
            PackageRequestHandler.SetParameterWhenNotNull("sub_mch_id", this.SubMchId);
            PackageRequestHandler.SetParameterWhenNotNull("offset", this.Offset != null ? this.Offset.ToString() : null);

            Sign = PackageRequestHandler.CreateMd5Sign("key", this.Key);
            PackageRequestHandler.SetParameter("sign", Sign); //签名

            #endregion
        }
コード例 #6
0
        /// <summary>
        /// 申请退款 请求参数
        /// </summary>
        /// <param name="appId"></param>
        /// <param name="mchId"></param>
        /// <param name="subAppId">服务商模式下,特约商户的开发配置中的AppId</param>
        /// <param name="subMchId">服务商模式下,特约商户的商户Id</param>
        /// <param name="key"></param>
        /// <param name="nonceStr"></param>
        /// <param name="deviceInfo"></param>
        /// <param name="transactionId"></param>
        /// <param name="outTradeNo"></param>
        /// <param name="outRefundNo"></param>
        /// <param name="refundFeeType"></param>
        /// <param name="signType"></param>
        /// <param name="totalFee"></param>
        /// <param name="refundFee"></param>
        /// <param name="opUserId"></param>
        /// <param name="refundAccount"></param>
        /// <param name="refundDescription"></param>
        /// <param name="notifyUrl"></param>
        public TenPayV3RefundRequestData(string appId, string mchId, string subAppId, string subMchId, string key, string deviceInfo, string nonceStr,
                                         string transactionId, string outTradeNo, string outRefundNo, int totalFee, int refundFee,
                                         string opUserId, string refundAccount, string refundDescription = null, string notifyUrl = null,
                                         string refundFeeType = "CNY", string signType = "MD5")
        {
            AppId             = appId;
            MchId             = mchId;
            Key               = key;
            NonceStr          = nonceStr;
            DeviceInfo        = deviceInfo;
            TransactionId     = transactionId;
            OutTradeNo        = outTradeNo;
            OutRefundNo       = outRefundNo;
            TotalFee          = totalFee;
            RefundFee         = refundFee;
            OpUserId          = opUserId;
            RefundFeeType     = refundFeeType;
            RefundAccount     = refundAccount;
            RefundDescription = refundDescription;
            NotifyUrl         = notifyUrl;
            SubAppId          = subAppId;
            SubMchId          = subMchId;
            SignType          = signType;

            #region 设置RequestHandler

            //创建支付应答对象
            PackageRequestHandler = new RequestHandler(null);
            //初始化
            PackageRequestHandler.Init();
            //设置package订单参数
            PackageRequestHandler.SetParameter("appid", this.AppId);  //公众账号ID
            PackageRequestHandler.SetParameter("mch_id", this.MchId); //商户号
            PackageRequestHandler.SetParameter("sub_appid", this.SubAppId);
            PackageRequestHandler.SetParameter("sub_mch_id", this.SubMchId);
            PackageRequestHandler.SetParameter("nonce_str", this.NonceStr); //随机字符串
            PackageRequestHandler.SetParameterWhenNotNull("device_info", this.DeviceInfo);
            PackageRequestHandler.SetParameter("sign_type", this.SignType);
            PackageRequestHandler.SetParameterWhenNotNull("transaction_id", this.TransactionId);
            PackageRequestHandler.SetParameterWhenNotNull("out_trade_no", this.OutTradeNo);
            PackageRequestHandler.SetParameter("out_refund_no", this.OutRefundNo);
            PackageRequestHandler.SetParameter("total_fee", this.TotalFee.ToString());
            PackageRequestHandler.SetParameter("refund_fee", this.RefundFee.ToString());
            PackageRequestHandler.SetParameter("op_user_id", this.OpUserId);
            PackageRequestHandler.SetParameterWhenNotNull("refund_fee_type", this.RefundFeeType);
            PackageRequestHandler.SetParameterWhenNotNull("refund_desc", this.RefundDescription);
            PackageRequestHandler.SetParameterWhenNotNull("notify_url", this.NotifyUrl);
            PackageRequestHandler.SetParameterWhenNotNull("refund_account", this.RefundAccount);
            Sign = PackageRequestHandler.CreateMd5Sign("key", this.Key);
            PackageRequestHandler.SetParameter("sign", Sign); //签名

            #endregion
        }