Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
f76ae8c6
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3172
Star
105
Fork
804
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
93
列表
看板
标记
里程碑
合并请求
67
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
93
Issue
93
列表
看板
标记
里程碑
合并请求
67
合并请求
67
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
f76ae8c6
编写于
11月 24, 2022
作者:
d-u-a
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ad-rewarded-video:更新回调示例代码
上级
d36a4103
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
70 addition
and
5 deletion
+70
-5
docs/component/ad-rewarded-video.md
docs/component/ad-rewarded-video.md
+70
-5
未找到文件。
docs/component/ad-rewarded-video.md
浏览文件 @
f76ae8c6
...
...
@@ -475,11 +475,76 @@ exports.main = async (event, context) => {
#### 用户云函数详细说明
如果业务使用了uniCloud,可以直接在云函数内部处理
1.
如果业务使用了uniCloud,可以直接在云函数内部处理
2.
没有使用uniCloud,将结果通过http发送给已有服务器
也可以将结果发送给已有业务服务器
示例代码: 用户业务系统在uniCloud
```
js
'
use strict
'
;
示例代码
const
crypto
=
require
(
'
crypto
'
);
const
db
=
uniCloud
.
database
();
const
collectionName
=
"
ad-callback-log
"
;
// 如果选择了腾讯云,需要手动预创建表
class
DB
{
static
save
(
data
)
{
return
new
DB
().
add
(
data
);
}
add
(
data
)
{
const
collection
=
db
.
collection
(
collectionName
);
const
data2
=
Object
.
assign
(
data
,
{
ad_type
:
0
,
create_date
:
new
Date
()
})
return
collection
.
add
(
data2
);
}
}
exports
.
main
=
async
(
event
,
context
)
=>
{
//event为客户端上传的参数
console
.
log
(
'
event :
'
,
event
);
const
{
path
,
queryStringParameters
}
=
event
;
const
data
=
{
adpid
:
event
.
adpid
,
platform
:
event
.
platform
,
provider
:
event
.
provider
,
trans_id
:
event
.
trans_id
,
sign
:
event
.
sign
,
user_id
:
event
.
user_id
,
extra
:
event
.
extra
,
}
// 注意::必须验签请求来源
const
secret
=
""
;
// uniad 后台开通激励视频回调后生成的 Security key
const
trans_id
=
event
.
trans_id
;
const
sign2
=
crypto
.
createHash
(
'
sha256
'
).
update
(
`
${
secret
}
:
${
trans_id
}
`
).
digest
(
'
hex
'
);
if
(
event
.
sign
!==
sign2
)
{
return
null
;
}
// 可选将回调记录保存到uniCloud,避免用户服务器没有响应时有日志可查,如果选择了保存记录需要做定时清理日志,避免日志过多影响性能
// try {
// await DB.save(data);
// } catch (e) {
// console.log(e);
// }
// 开发者在此处处理自己的回调业务,需要返回值
return
null
};
```
示例代码: 用户业务系统不在uniCloud,通过http的方式发送数据到已有服务器
```
js
'
use strict
'
;
...
...
@@ -587,8 +652,8 @@ exports.main = async (event, context) => {
// console.log(e);
// }
//
const url = "https://"; // 用户业务服务器地址,为了避免请求被伪造,必须使用签名的方式请求
//
let reuslt = await UserServer.send(url, data);
const
url
=
"
https://
"
;
// 用户业务服务器地址,为了避免请求被伪造,必须使用签名的方式请求
let
reuslt
=
await
UserServer
.
send
(
url
,
data
);
return
reuslt
};
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录