public WxPayParameter Unifiedorder(WxPayData data) { var request = "https://api.mch.weixin.qq.com/pay/unifiedorder"; var order = request.GetUriContentDirectly((http) => { if (request.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); } http.Timeout = 30 * 1000; ServicePointManager.DefaultConnectionLimit = 200; http.UserAgent = string.Format("WXPaySDK/{3} ({0}) .net/{1} {2}", Environment.OSVersion, Environment.Version, Constants.WxConfig.MchId, typeof(WxPayParameter).Assembly.GetName().Version); http.Method = "POST"; http.ContentType = "text/xml"; using (var stream = http.GetRequestStream()) { var body = data.SerializeToXml(); var buffers = UTF8Encoding.UTF8.GetBytes(body); stream.Write(buffers, 0, buffers.Length); stream.Flush(); } return(http); }).DeserializeFromXml <WxUnifiedorderResponse>(); return(new WxPayParameter(order)); }
public WxPayParameter Unifiedorder(WxPayData data, string mchid) { var request = "https://api.mch.weixin.qq.com/pay/unifiedorder"; var order = request.GetUriContentDirectly((http) => { http.Timeout = 30 * 1000; ServicePointManager.DefaultConnectionLimit = 200; http.UserAgent = string.Format("WXPaySDK/{3} ({0}) .net/{1} {2}", Environment.OSVersion, Environment.Version, mchid, typeof(WxPayParameter).Assembly.GetName().Version); http.Method = "POST"; http.ContentType = "text/xml"; using (var stream = http.GetRequestStream()) { var body = data.SerializeToXml(); var buffers = UTF8Encoding.UTF8.GetBytes(body); stream.Write(buffers, 0, buffers.Length); stream.Flush(); } return(http); }).DeserializeFromXml <WeChatUnifiedorderResponse>(); return(new WxPayParameter(order, this.generator)); }
private PullWxPayData GenernatePullWxPayData( Trade trade, WxPayData data, string mchid, string paykey) { var xml = data.SerializeToXml(); var parameter = this.wxapi.Unifiedorder(data, mchid); parameter.PaySign = parameter.MakeSign(paykey); return(new PullWxPayData() { nonceStr = parameter.NonceStr, package = parameter.Package, paySign = parameter.PaySign, signType = WxPayData.SIGN_TYPE_HMAC_SHA256, timeStamp = parameter.TimeStamp.ToString(), TradeId = trade.TradeId, WxOrderId = trade.WxOrderId }); }