protected void Page_Load(object sender, EventArgs e) { string str = base.Request.QueryString.Get("orderId"); if (!string.IsNullOrEmpty(str)) { OrderInfo orderInfo = OrderHelper.GetOrderInfo(str); if (orderInfo != null) { PackageInfo package = new PackageInfo { Body = orderInfo.OrderId, NotifyUrl = string.Format("http://{0}/pay/wx_Pay.aspx", base.Request.Url.Host), OutTradeNo = orderInfo.OrderId, TotalFee = (int) (orderInfo.GetTotal() * 100M) }; if (package.TotalFee < 1M) { package.TotalFee = 1M; } string openId = ""; MemberInfo currentMember = MemberProcessor.GetCurrentMember(); if (currentMember != null) { openId = currentMember.OpenId; } package.OpenId = openId; SiteSettings masterSettings = SettingsManager.GetMasterSettings(false); PayRequestInfo req = new PayClient(masterSettings.WeixinAppId, masterSettings.WeixinAppSecret, masterSettings.WeixinPartnerID, masterSettings.WeixinPartnerKey, masterSettings.WeixinPaySignKey).BuildPayRequest(package); this.pay_json = this.ConvertPayJson(req); } } }
internal string BuildPackage(PackageInfo package) { PayDictionary parameters = new PayDictionary(); parameters.Add("appid", this._payAccount.AppId); parameters.Add("mch_id", this._payAccount.PartnerId); parameters.Add("device_info", ""); parameters.Add("nonce_str", Utils.CreateNoncestr()); parameters.Add("body", package.Body); parameters.Add("attach", ""); parameters.Add("out_trade_no", package.OutTradeNo); parameters.Add("total_fee", (int) package.TotalFee); parameters.Add("spbill_create_ip", package.SpbillCreateIp); parameters.Add("time_start", package.TimeExpire); parameters.Add("time_expire", ""); parameters.Add("goods_tag", package.GoodsTag); parameters.Add("notify_url", package.NotifyUrl); parameters.Add("trade_type", "JSAPI"); parameters.Add("openid", package.OpenId); parameters.Add("product_id", ""); string sign = SignHelper.SignPackage(parameters, this._payAccount.PartnerKey); string str2 = this.GetPrepay_id(parameters, sign); if (str2.Length > 0x40) { str2 = ""; } return string.Format("prepay_id=" + str2, new object[0]); }
public PayRequestInfo BuildPayRequest(PackageInfo package) { PayRequestInfo info = new PayRequestInfo { appId = this._payAccount.AppId, package = this.BuildPackage(package), timeStamp = Utils.GetCurrentTimeSeconds().ToString(), nonceStr = Utils.CreateNoncestr() }; PayDictionary parameters = new PayDictionary(); parameters.Add("appId", this._payAccount.AppId); parameters.Add("timeStamp", info.timeStamp); parameters.Add("package", info.package); parameters.Add("nonceStr", info.nonceStr); parameters.Add("signType", "MD5"); info.paySign = SignHelper.SignPay(parameters, this._payAccount.PartnerKey); return info; }