微信中控 - 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时,授权之后才能使用此方法, 否则此方法必然会失败