Commit dcce015d by 庄冰

wxoauth

parent df8e7c0c
...@@ -4,6 +4,7 @@ class PolicyAPI extends APIBase { ...@@ -4,6 +4,7 @@ class PolicyAPI extends APIBase {
constructor() { constructor() {
super(); super();
this.policySve = system.getObject("service.policy.policySve"); this.policySve = system.getObject("service.policy.policySve");
this.wxTokenSve = system.getObject("service.common.wxTokenSve");
} }
/** /**
* 接口跳转-POST请求 * 接口跳转-POST请求
...@@ -46,6 +47,9 @@ class PolicyAPI extends APIBase { ...@@ -46,6 +47,9 @@ class PolicyAPI extends APIBase {
case "getWxSign"://获取微信签名信息 case "getWxSign"://获取微信签名信息
opResult = this.policySve.getWxSign(action_body.url); opResult = this.policySve.getWxSign(action_body.url);
break; break;
case "getTokenAndOpenid"://通过code换取网页授权access_token,用于政策H5 oauth授权登录
opResult = this.wxTokenSve.getTokenAndOpenid(action_body);
break;
case "submitPolicysubscribe"://提交政策订阅 case "submitPolicysubscribe"://提交政策订阅
opResult = this.policySve.reqPolicyApi(pobj); opResult = this.policySve.reqPolicyApi(pobj);
break; break;
......
...@@ -11,7 +11,7 @@ class WxTokenService{ ...@@ -11,7 +11,7 @@ class WxTokenService{
this.logDao = system.getObject("db.common.oplogDao"); this.logDao = system.getObject("db.common.oplogDao");
} }
/** /**
* 获取微信access_token * 获取微信access_token,用于微信H5链接分享
* 返回结果: * 返回结果:
* component_access_token 第三方平台access_token * component_access_token 第三方平台access_token
* expires_in 有效期 * expires_in 有效期
...@@ -41,7 +41,7 @@ class WxTokenService{ ...@@ -41,7 +41,7 @@ class WxTokenService{
} }
} }
/** /**
* 获取微信getJsapiTicket * 获取微信getJsapiTicket,用于微信H5链接分享
*/ */
async getJsapiTicket(access_token){ async getJsapiTicket(access_token){
try{ try{
...@@ -59,6 +59,39 @@ class WxTokenService{ ...@@ -59,6 +59,39 @@ class WxTokenService{
return null; return null;
} }
} }
/**
* 通过code换取网页授权access_token,用于政策H5 oauth授权登录
* 注意:
* 里通过code换取的是一个特殊的网页授权access_token,
* 与基础支持中的access_token(该access_token用于调用其他接口)不同。
* 公众号可通过下述接口来获取网页授权access_token。
* 如果网页授权的作用域为snsapi_base,则本步骤中获取到网页授权access_token的同时,也获取到了openid,
* snsapi_base式的网页授权流程即到此为止。
*
*/
async getTokenAndOpenid(obj){
try {
if(!obj || !obj.code){
return system.getResultFail(-1,"code参数不能为空");
}
var url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx6f3ebe44defe336a&secret=82e8e32421647f0a86bbad14f041959b&code="+
obj.code+"&grant_type=authorization_code";
var rtn=await this.rc.execGet({},url);
console.log(rtn);
this.logDao.create({
op: "WxTokenService/getToken2",
content: JSON.stringify(rtn),
optitle: "获取政策微信getToken2",
});
var result=JSON.parse(rtn.stdout);
return system.getResultSuccess(result);
} catch (e) {
var err = JSON.stringify(e.stack);
return system.getResultFail(-200,err);
}
}
} }
module.exports=WxTokenService; module.exports=WxTokenService;
\ No newline at end of file
...@@ -8,10 +8,10 @@ ...@@ -8,10 +8,10 @@
1. [获取微信签名信息](#getWxSign) 1. [获取微信签名信息](#getWxSign)
1. [提交政策订阅](#submitPolicysubscribe) 1. [提交政策订阅](#submitPolicysubscribe)
1. [取消政策订阅](#delPolicysubscribe) 1. [取消政策订阅](#delPolicysubscribe)
1. [获取政策订阅列表](#getPolicysubscribeist) 1. [获取政策订阅列表](#getPolicysubscribeList)
1. [政策类型统计计数](#policyTypeCount) 1. [政策类型统计计数](#policyTypeCount)
1. [政策订阅检索列表(通过订阅信息查询订阅的政策信息)](#policySubscribeQuery) 1. [政策订阅检索列表(通过订阅信息查询订阅的政策信息)](#policySubscribeQuery)
1. [获取微信网页授权令牌(用于政策H5 oauth授权登录)](#getTokenAndOpenid)
## **<a name="policyQuery"> 政策检索(H5)</a>** ## **<a name="policyQuery"> 政策检索(H5)</a>**
[返回到目录](#menu) [返回到目录](#menu)
##### URL ##### URL
...@@ -333,16 +333,16 @@ ...@@ -333,16 +333,16 @@
"requestId":"6528d103010d406eaa91a2d391df4463" "requestId":"6528d103010d406eaa91a2d391df4463"
} }
``` ```
## **<a name="getPolicysubscribeist"> 获取政策订阅列表</a>** ## **<a name="getPolicysubscribeList"> 获取政策订阅列表</a>**
[返回到目录](#menu) [返回到目录](#menu)
##### URL ##### URL
[/web/action/policy/springBoard] [/web/action/policy/springBoard]
#### 参数格式 `JSON` #### 参数格式 `JSON`
#### HTTP请求方式 `POST` #### HTTP请求方式 `POST`
#### 渠道执行的类型 actionType:getPolicysubscribeist #### 渠道执行的类型 actionType:getPolicysubscribeList
``` javascript ``` javascript
{ {
"actionType":"getPolicysubscribeist", "actionType":"getPolicysubscribeList",
"actionBody":{ "actionBody":{
"openid":"test001" "openid":"test001"
} }
...@@ -465,3 +465,34 @@ ...@@ -465,3 +465,34 @@
} }
``` ```
## **<a name="getTokenAndOpenid"> 获取微信网页授权令牌(用于政策H5 oauth授权登录)</a>**
[返回到目录](#menu)
##### URL
[/web/action/policy/springBoard]
#### 参数格式 `JSON`
#### HTTP请求方式 `POST`
#### 渠道执行的类型 actionType:getTokenAndOpenid
``` javascript
{
"actionType":"getTokenAndOpenid",
"actionBody":{
"code":"CODE",
}
}
```
#### 返回结果
```javascript
{
"status":0,
"msg":"success",
"data":{
"access_token":"30_y2XdEQ7M8nTc20PW6iBiXqfXMnPxKJXILsYrcctt-sx_9kaEpXq0-hyhGHV1s0uIlT2BIziNVree6kR1IcQ-LMPdL9DjGUm21_hnNoweYTI",
"expires_in":7200,
"refresh_token":"30_1dTSPdkF7z1ezBLk1IfeHUier1BYhfmtlaWcKcvNBMggdLdgrldUPxa-oUGFAqalzqUAnYdK8xP33e7jUEimFGZOaDUHgHZsaoeKBpocnX8",
"openid":"o7kgSs0yK_SOhRVl_LSHpL156EAE",
"scope":"snsapi_base"
},
"requestId":"7c7b8cea10ba4d42975bd44f1182c37c"
}
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment