Example #1
0
        /// <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());
            }
        }
Example #2
0
        /// <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;
        }