public static string ShareConfig(string shareurl) { var access_token = ""; //if (HttpContext.Current.Cache.Get("access_token_js") == null) //{ access_token = JSAPI.getToken(); // HttpContext.Current.Cache.Insert("access_token_js", access_token,null,DateTime.Now.AddSeconds(720),new TimeSpan(0,0,12)); //} //else //{ // access_token = HttpContext.Current.Cache.Get("access_token_js").ToString(); //} var ticket = JSAPI.GetTickect(access_token); var result = new ShareConfigContract(); result.appid = WxPayConfig.APPID; result.timestamp = WxPayApi.GenerateTimeStamp(); result.nonceStr = WxPayApi.GenerateNonceStr(); result.jsapi_ticket = ticket; var str = ""; result.signture = JSAPI.GetSignature(ticket, result.nonceStr, result.timestamp, shareurl, out str); result.str = str; return(JsonConvert.SerializeObject(result)); }
public void Initialize() { AssertNotInitialized(); // Repack in case members were changed ClassPtr.Pack(ref ClassDefinition); JSNative ctorDelegate; if (ManagedConstructor != null) { ctorDelegate = ManagedConstructor.WrappedMethod; } else { ctorDelegate = NativeConstructor.Target; } Prototype = new JSObjectReference(Context, JSAPI.InitClass( Context, GlobalObject, _ParentPrototype, ClassPtr, ctorDelegate, _NumConstructorArguments, JSPropertySpecPtr.Zero, JSFunctionSpecPtr.Zero, JSPropertySpecPtr.Zero, JSFunctionSpecPtr.Zero )); JSObjectPtr ctor = JSAPI.GetConstructor(Context, Prototype); Constructor = new JSObjectReference(Context, ctor); }
public TestContext(JSRuntime runtime = null) { Assert.IsTrue(JSAPI.IsInitialized); if (runtime == null) { Runtime = new JSRuntime(); OwnsRuntime = true; } else { Runtime = runtime; OwnsRuntime = false; } Context = new JSContext(Runtime); Request = Context.Request(); Global = new JSGlobalObject(Context); CompartmentEntry = Context.EnterCompartment(Global); if (!JSAPI.InitStandardClasses(Context, Global)) { throw new Exception("Failed to initialize standard classes"); } }
public static unsafe Rooted <JS.Value> ManagedToNativeException(JSContextPtr cx, Exception managedException) { var errorRoot = NewError(cx, managedException.Message); var errorObj = errorRoot.Value.AsObject; var existingStackRoot = new Rooted <JS.Value>(cx); JSAPI.GetProperty( cx, &errorObj, "stack", existingStackRoot ); var existingStackText = existingStackRoot.Value.ToManagedString(cx); JSAPI.SetProperty( cx, &errorObj, "stack", new JSString( cx, managedException.StackTrace + "\n//---- JS-to-native boundary ----//\n" + existingStackText ) ); if (managedException.InnerException != null) { var inner = ManagedToNativeException(cx, managedException.InnerException); JSAPI.SetProperty(cx, &errorObj, "innerException", inner); } return(errorRoot); }
/// <summary> /// 分享到朋友圈参数自定义 /// </summary> /// <param name="url"></param> /// <returns></returns> public JsSDKResponse GetJsSDKTicket(string url) { var jssdk_ticket = JSAPI.GetJsSDKTicket(WxPayConfig.APPID, WxPayConfig.APPSECRET); var nonceStr = WxPayApi.GenerateNonceStr(); var timestamp = WxPayApi.GenerateTimeStamp(); //var domain = weChat.BackDomain; //url = domain + url; var string1 = ""; var signature = JSAPI.GetSignature(jssdk_ticket, nonceStr, timestamp, url, out string1); var model = new JsSDKResponse { Debug = true, AppId = WxPayConfig.APPID, Timestamp = WxPayApi.GenerateTimeStamp(), NonceStr = WxPayApi.GenerateNonceStr(), Signature = signature, ShareUrl = url, JsapiTicket = jssdk_ticket, //ShareImg = domain + Url.Content("/images/noimg.jpg"), String1 = string1, JsApiList = System.Configuration.ConfigurationManager.AppSettings["jsApiList"].Split(','), }; return(model); }
public static JS.Value ManagedToNative(JSContextPtr cx, object value) { if (value == null) { return(JS.Value.Null); } var s = value as string; if (s != null) { var pString = JSAPI.NewStringCopy(cx, s); return(new JS.Value(pString)); } var a = value as Array; if (a != null) { var va = new JS.ValueArray((uint)a.Length); for (int i = 0, l = a.Length; i < l; i++) { va.Elements[i] = ManagedToNative(cx, a.GetValue(i)); } JS.ValueArrayPtr vaPtr = va; var pArray = JSAPI.NewArrayObject(cx, ref vaPtr); return(new JS.Value(pArray)); } return((JS.Value)Activator.CreateInstance(typeof(JS.Value), value)); }
public ActionResult Pay() { var appId = WeixinConfig.AppID; var nonceStr = Util.CreateNonce_str(); var timestamp = Util.CreateTimestamp(); var domain = System.Configuration.ConfigurationManager.AppSettings["Domain"]; var url = domain + Request.Url.PathAndQuery; var jsTickect = WeixinConfig.TokenHelper.GetJSTickect(); var string1 = ""; var signature = JSAPI.GetSignature(jsTickect, nonceStr, timestamp, url, out string1); var userAgent = Request.UserAgent; var userVersion = userAgent.Substring(userAgent.LastIndexOf("/") + 1);//微信版本号高于或者等于5.0才支持微信支付 var model = new JSPayModel { appId = appId, nonceStr = nonceStr, signature = signature, timestamp = timestamp, jsapiTicket = jsTickect, string1 = string1, userAgent = userAgent, userVersion = userVersion, }; return(View(model)); }
public ActionResult JsApi(string shareUrl = "") { string url = ""; var appId = WeixinConfig.AppID; var nonceStr = Util.CreateNonce_str(); var timestamp = Util.CreateTimestamp(); var domain = System.Configuration.ConfigurationManager.AppSettings["Domain"]; if (string.IsNullOrEmpty(shareUrl)) { url = domain + Request.Url.PathAndQuery; } else { url = shareUrl; } var jsTickect = WeixinConfig.TokenHelper.GetJSTickect(); var string1 = ""; var signature = JSAPI.GetSignature(jsTickect, nonceStr, timestamp, url, out string1); var model = new JSSDKModel { appId = appId, nonceStr = nonceStr, signature = signature, timestamp = timestamp, shareUrl = url, jsapiTicket = jsTickect, //shareImg = domain + Url.Content("/images/ad.jpg"), string1 = string1, }; return(Json(model, JsonRequestBehavior.AllowGet)); }
public unsafe Rooted <Value> InvokeFunction( JSContextPtr context, JSHandleObject thisReference, params Value[] arguments ) { fixed(Value *pThis = &this) fixed(Value * pArgs = arguments) { var argsPtr = new ValueArrayPtr((uint)arguments.Length, (IntPtr)pArgs); var resultRoot = new Rooted <Value>(context, Undefined); if (JSAPI.CallFunctionValue( context, thisReference, pThis, ref argsPtr, resultRoot )) { return(resultRoot); } resultRoot.Dispose(); return(null); } }
public ActionResult Index() { ViewBag.Title = "JSSDK demo"; var appId = WeixinConfig.AppID; var nonceStr = JSAPI.CreateNonce_str(); var timestamp = JSAPI.CreatenTimestamp(); var domain = System.Configuration.ConfigurationManager.AppSettings["Domain"]; var url = domain + Request.Url.PathAndQuery; var jsTickect = WeixinConfig.TokenHelper.GetJSTickect(); var string1 = ""; var signature = JSAPI.GetSignature(jsTickect, nonceStr, timestamp, url, out string1); var model = new JSSDKModel { appId = appId, nonceStr = nonceStr, signature = signature, timestamp = timestamp, shareUrl = url, jsapiTicket = jsTickect, shareImg = domain + Url.Content("/images/ad.jpg"), string1 = string1, }; return(View(model)); }
public void Dispose(bool collectGarbage = true) { if (IsDisposed) { return; } IsDisposed = true; GC.SuppressFinalize(this); WeakReference temp; if (!ContextRegistry.TryRemove(Pointer, out temp)) { Debug.WriteLine("Failed to remove context from registry"); } if (collectGarbage) { JSAPI.DestroyContext(Pointer); } else { JSAPI.DestroyContextNoGC(Pointer); } }
public ActionResult Index() { var appId = WeixinConfig.AppID; var appSecret = WeixinConfig.AppSecret; var nonceStr = Util.CreateNonce_str(); var timestamp = Util.CreateTimestamp(); var domain = System.Configuration.ConfigurationManager.AppSettings["Domain"]; var url = domain + Request.Url.PathAndQuery; var jsTickect = ""; using (CommanderServiceClient client = new CommanderServiceClient()) { jsTickect = client.GetJsTicket(appId, appSecret, false); } var string1 = ""; var signature = JSAPI.GetSignature(jsTickect, nonceStr, timestamp, url, out string1); var model = new JSSDKModel { appId = appId, nonceStr = nonceStr, signature = signature, timestamp = timestamp, shareUrl = url, jsapiTicket = jsTickect, shareImg = domain + Url.Content("/images/ad.jpg"), string1 = string1, }; return(View(model)); }
public static JSObjectPtr CreateInstance(JSContextPtr context) { return(JSAPI.NewObject( context, JSClassPtr.Zero, JSHandleObject.Zero, JSHandleObject.Zero )); }
private GameEventBus() { _triggerPools = new Dictionary <string, List <Trigger> >(); _apiObj = new JSAPI(this); _waitForAdding = new Queue <Trigger>(); _waitForRemoving = new Queue <Trigger>(); _waitForPublishing = new Queue <Event>(); }
private IEnumerator _endVoting() { TwitchBotRequest botRequest = JSAPI.EndVoting(); yield return(botRequest); SetVisible(false); }
public StorySceneContainer() { _objList = new IdentifiedObjList <ISceneObject>(); _playerCharacters = new IdentifiedObjList <Character>(); _camera = new Camera(); _textBoxes = new List <TextBox>(); _apiObj = new JSAPI(this); }
public JSRuntime(uint maxBytes = 1024 * 1024 * 8) { Pointer = JSAPI.NewRuntime(maxBytes); if (Pointer.IsZero) { throw new Exception(); } }
public static JSObjectPtr CreateInstance(JSContextPtr context) { return(JSAPI.NewGlobalObject( context, DefaultClass, null, JSOnNewGlobalHookOption.DontFireOnNewGlobalHook, ref JSCompartmentOptions.Default )); }
/// <summary> /// Creates a this-reference for use inside this class's constructor. /// </summary> public JS.Value NewObjectForConstructor(uint argc, JSCallArgumentsPtr vp) { var callArgs = new JSCallArgs(vp, argc); return(new JS.Value( JSAPI.NewObjectForConstructor( Context, ClassPtr, ref callArgs ) )); }
public JSArray( JSContextPtr context, JSObjectPtr obj ) : base(context, obj) { if (!JSAPI.IsArrayObject(context, Root)) { throw new ArgumentException("Value is not an array", "obj"); } }
public void Dispose() { if (IsDisposed) { return; } IsDisposed = true; JSAPI.LeaveCompartment(Context, OldCompartment); }
public void Dispose() { if (IsDisposed) { return; } IsDisposed = true; JSAPI.EndRequest(Context); }
public unsafe bool IsArray(JSContextPtr context) { if (ValueType != JSValueType.OBJECT) { return(false); } var obj = this.AsObject; return(JSAPI.IsArrayObject(context, &obj)); }
private static void ReqWeixinToken() { var access_token = BasicAPI.GetAccessToken(AppID, AppSecret).access_token; var js = JSAPI.GetTickect(access_token); var jssdk_ticket = js.ticket; var json = DynamicJson.Serialize(new weixin_token { access_token = access_token, jssdk_ticket = jssdk_ticket }); cache.Insert(AppID, json, null, DateTime.Now.AddSeconds(ACCESS_TOKEN_EXPIRE_SECONDS), System.Web.Caching.Cache.NoSlidingExpiration); }
IEnumerator Start() { //UI = GameObject.FindGameObjectWithTag("MainCanvas").GetComponent<TwitchOverworldUI>(); //StartGettingPlayers(); TwitchBotRequest playerRequest = JSAPI.GetAllPlayers(); yield return(playerRequest); PopulatePlayerList(playerRequest.Response); battlepanel.SetVisible(true); }
public void Dispose() { if (IsDisposed) { return; } IsDisposed = true; GC.SuppressFinalize(this); JSAPI.DestroyRuntime(Pointer); }
/// <summary> /// 微信公众号推送消息 根据OpenID列表群发【订阅号不可用,服务号认证后可用】 /// </summary> /// <param name="content">内容</param> /// <param name="OpenIds">OpenID列表</param> public bool ReplayOpenids(string content, List <string> OpenIds) { try { var accessToken = JSAPI.GetAccessToken(WxPayConfig.APPID, WxPayConfig.APPSECRET); //微信公众号推送消息 AdvanceMassReplayMessageAPI.ReplayOpenids(accessToken.access_token, content, WeixinArtcleType.Text, OpenIds, "", ""); } catch { return(false); } return(true); }
private static Rooted <JS.Value> NewError(JSContextPtr cx, params object[] errorArguments) { var jsErrorArgs = new JS.ValueArray((uint)errorArguments.Length); for (int i = 0; i < errorArguments.Length; i++) { jsErrorArgs.Elements[i] = ManagedToNative(cx, errorArguments[i]); } JS.ValueArrayPtr vaPtr = jsErrorArgs; return(new Rooted <JS.Value>( cx, new JS.Value(JSAPI.NewError(cx, ref vaPtr)) )); }
public unsafe string ToManagedString(JSContextPtr context) { fixed(Value *pThis = &this) { var resultJsString = JSAPI.ToString(context, pThis); if (resultJsString.IsZero) { return(null); } return(resultJsString.ToManagedString(context)); } }
public Extra(Character item) { if (item == null) { throw new ArgumentNullException(nameof(item)); } if (item.Belong != null) { throw new ArgumentException("This item has already been bound.", nameof(item)); } _item = item; item.SetBelong(this); _passiveEffects = new ExtraPropertyList <PassiveEffect>(this); _apiObj = new JSAPI(this); }