/// <summary> /// /// </summary> /// <param name="appId"></param> /// <param name="secret"></param> /// <param name="isDebug"></param> /// <param name="readyScript"></param> /// <param name="errorScript"></param> public static void Initialization(string appId, string secret, bool isDebug = false, string readyScript = null, string errorScript = null) { if (!General.IsNullable(appId)) { StringBuilder javascript = new StringBuilder(); string timestamp = DateTime.Now.ToString("yyyyMMddHHmmss"); string nonceStr = General.UniqueString(); WxParameters paras = new WxParameters(); paras.SetValue("debug", isDebug); paras.SetValue("appId", appId); paras.SetValue("timestamp", timestamp); paras.SetValue("nonceStr", nonceStr); paras.SetValue("signature", MakeSign(appId, secret, nonceStr, timestamp)); paras.SetValue("jsApiList", _jsApiList); javascript.AppendLine("(function($){"); javascript.AppendLine(" if(typeof wx != \"undefined\"){"); javascript.AppendLine(" wx.config("); javascript.AppendLine(" " + paras.ToJson()); javascript.AppendLine(" );"); javascript.AppendLine(" wx.ready(function(){"); javascript.AppendLine(" " + readyScript); javascript.AppendLine(" });"); javascript.AppendLine(" wx.error(function(result){"); javascript.AppendLine(" " + errorScript); javascript.AppendLine(" });"); javascript.AppendLine(" }"); javascript.AppendLine("})(jQuery);"); Helper.ExecScript(javascript.ToString()); } }
/// <summary> /// 在微信浏览器内生成公众号预支付订单 /// </summary> /// <param name="reportCost">设置是否需要上报测速</param> /// <returns>预支付订单生成成功则返回一段JavaScript脚本,这段脚本可以在基于HTML5的客户端网页中发起微信支付流程</returns> public string PublicPlaceOrder(bool reportCost = false) { ResultParameters results = this.Results; if (PlaceOrder(PayTradeType.JSAPI, reportCost)) { if (results.IsResultSuccess) { StringBuilder js = new StringBuilder(); WxParameters paras = new WxParameters(); paras.SetValue("appId", results.AppId); paras.SetValue("api_key", this.Submits.ApiKey); paras.SetValue("timeStamp", Convert.ToInt64((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds).ToString()); paras.SetValue("nonceStr", General.UniqueString()); paras.SetValue("package", "prepay_id=" + results.PrepayId); paras.SetValue("signType", "MD5"); paras.SetValue("paySign", paras.MakeSign()); js.AppendLine("function __onWxPayBridgeReady() {"); js.AppendLine(" WeixinJSBridge.invoke("); js.AppendLine(" \"getBrandWCPayRequest\","); js.AppendLine(" " + paras.ToJson() + ","); js.AppendLine(" function (result) {"); js.AppendLine(" if(typeof window[\"onBrandWCPayResponse\"] == \"function\") {"); js.AppendLine(" var __response = result.err_msg.replace(\"get_brand_wcpay_request:\",\"\");"); js.AppendLine(" onBrandWCPayResponse(__response, result);"); js.AppendLine(" }"); js.AppendLine(" }"); js.AppendLine(" );"); js.AppendLine("}"); js.AppendLine(); js.AppendLine("function __toggleWxPayBridge() {"); js.AppendLine(" if (typeof WeixinJSBridge == \"undefined\"){"); js.AppendLine(" if (document.addEventListener){"); js.AppendLine(" document.addEventListener(\"WeixinJSBridgeReady\", __onWxPayBridgeReady, false);"); js.AppendLine(" }"); js.AppendLine(" else if(document.attachEvent){"); js.AppendLine(" document.attachEvent(\"WeixinJSBridgeReady\", __onWxPayBridgeReady);"); js.AppendLine(" document.attachEvent(\"onWeixinJSBridgeReady\", __onWxPayBridgeReady);"); js.AppendLine(" }"); js.AppendLine(" }"); js.AppendLine(" else{"); js.AppendLine(" __onWxPayBridgeReady();"); js.AppendLine(" }"); js.AppendLine("}"); //return paras.ToJson(); return js.ToString(); } } return null; }