private void WxPayJS() { string siteUrl = MojoCube.Web.Site.Cache.GetDomain(strLanguage); //获取网站的域名 MojoCube.Web.Payment.List payment = new MojoCube.Web.Payment.List(); payment.GetDataByType(2); MojoCube.Web.Order.List order = new MojoCube.Web.Order.List(); order.GetData(int.Parse(ViewState["pk_Order"].ToString())); if (order.pk_Order == 0 || order.StatusID > 0 || order.fk_Member.ToString() != Session["Member_UserID"].ToString()) { Response.Redirect(MojoCube.Web.Site.Cache.GetUrlExtension("Order", strLanguage)); } appId = payment.AppID; string partnerId = payment.PartnerID; string key = payment.KeyCode; string secret = payment.Secret; int price = (int)(order.Amount * 100); string body = order.Description; if (body.Length > 20) { body = body.Substring(0, 20); } //调用【网页授权获取用户信息】接口获取用户的openid和access_token GetOpenidAndAccessToken(appId, secret); UnifiedOrder order1 = new UnifiedOrder(); order1.appid = appId; order1.mch_id = partnerId; order1.nonce_str = TenpayUtil.getNoncestr(); order1.body = body; order1.out_trade_no = order.OrderNumber; order1.total_fee = price; order1.spbill_create_ip = Page.Request.UserHostAddress; order1.notify_url = siteUrl + MojoCube.Web.Site.Cache.GetUrlExtension("WxPay_Notify", strLanguage); order1.trade_type = "JSAPI"; if (ViewState["OpenID"] != null) { order1.openid = ViewState["OpenID"].ToString(); //JSAPI必须传入openid } TenpayUtil tu = new TenpayUtil(); prepayId = tu.getPrepay_id(order1, key); nonceStr = order1.nonce_str; timeStamp = TenpayUtil.getTimestamp(); SortedDictionary <string, string> sParams = new SortedDictionary <string, string>(); sParams.Add("appId", appId); sParams.Add("nonceStr", nonceStr); sParams.Add("package", "prepay_id=" + prepayId); sParams.Add("signType", "MD5"); sParams.Add("timeStamp", timeStamp); sign = tu.getsign(sParams, key); }