微信中控 - WxCentralService

要使用微信中控需要两个条件

  • 导入微信js-sdk
  • 在微信客户端环境中

微信中控服务接口

sgt.WxCentralService.getAccessToken(appId, callback)

  • appId: string SGT中的appid
  • callback: Function 回调函数
  • return: WxResult 含有accessToken的WxResult

获取微信的accessToken,每一小时刷新一次

sgt.WxCentralService.getJSTicket(appId, callback)

  • appId: string SGT中的appid
  • callback: Function 回调函数
  • return: WxResult 含有jsapi_ticket的WxResult

获取微信的jsapi_ticket

sgt.WxCentralService.getSignature(appId, url, callback)

  • appId: string SGT中的appid
  • url: string 页面url,必须是调用JS接口页面的完整URL。
  • callback: Function 回调函数
  • return: WxResult 包含签名以及计算参数的WxResult:{ result: 处理正常result有值{"signature":"签名","timestamp":"计算时用到的时间戳,单位秒","noncestr":"计算签名的随机字符串"},error:"计算失败时返回的错误信息"

获取jsapi 签名,签名用的noncestr和timestamp必须与wx.config中的nonceStr和timestamp相同。

sgt.WxCentralService.getPayOrder(paramModel, callback)

  • paramModel: string 参数对象
  • callback: Function 回调函数
  • return: Object

参数对象

{
    body: 'JSAPI支付测试',
    total_fee: 1,
    trade_type: 'JSAPI',
    openid: 'oUpF8uMuAJO_M2pxb1Q9zNjWeS6o',
    serverId: '',
    playerId: '',
    userId: ''
}

返回对象

{
    return_code: 'SUCCESS',
    return_msg: 'OK',
    appid: 'wx2421b1c4370ec43b',
    mch_id: '10000100',
    nonce_str: 'IITRi8Iabbblz1Jc',
    sign: '7921E432F65EB8ED0CE9755F0E86D72F',
    result_code: 'SUCCESS',
    prepay_id: 'wx201411101639507cbf6ffd8b0779950874',
    trade_type: JSAPI
}

微信支付统一下单方法, 在使用微信jssdk支付时, 需要先统一下单, 才能返回需要的prepay_id

sgt.WxCentralService.auth(appid, scope)

  • appid: string 微信的appid
  • scope: string 可选 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)

微信授权方法,使用此方法后,会在刷新当前页面,并在自动在SgtApi.context中注入参数openid的值, 如果scope为snsapi_userinfo时, 则会额外注入参数access_token的值
之后可以通过sgt.context.openid或者sgt.context.access_token去获取值, 另外,在localStorage中也保存了这两个值,格式为'sgt-' + SgtApi.context.appId + '-openid'或'sgt-' + SgtApi.context.appId + '-access_token'

sgt.WxCentralService.getUserAccessToken(code, callback)

  • code: string auth验证返回的code
  • callback: Function 回调函数
  • return: Object
{
   "access_token":"ACCESS_TOKEN",
   "expires_in":7200,
   "refresh_token":"REFRESH_TOKEN",
   "openid":"OPENID",
   "scope":"SCOPE",
   "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

此方法一般不用调用, 通过auth方法后会自动执行此方法(通过code换取网页授权access_token还有openid)

sgt.WxCentralService.getUserInfo(callback)

  • callback: Function 回调函数
  • return: Object
{
   "openid":" OPENID",
   " nickname": NICKNAME,
   "sex":"1",
   "province":"PROVINCE"
   "city":"CITY",
   "country":"COUNTRY",
    "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", 
    "privilege":[
    "PRIVILEGE1"
    "PRIVILEGE2"
    ],
    "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
}

登录获取微信用户信息,需要在auth授权scope参数是snsapi_userinfo时,授权之后才能使用此方法, 否则此方法必然会失败