Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
sdk_release
概览
概览
详情
活动
周期分析
版本库
存储库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
JIRA
JIRA
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程表
图表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
open
sdk_release
Commits
9af99f49
提交
9af99f49
authored
12月 19, 2018
作者:
王进
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新百度SDK
上级
7c99e386
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
196 行增加
和
345 行删除
+196
-345
SDK.ts
baidu_sdk_release/SDK.ts
+188
-333
SDKConfig.ts
baidu_sdk_release/SDKConfig.ts
+8
-12
没有找到文件。
baidu_sdk_release/SDK.ts
浏览文件 @
9af99f49
...
@@ -3,51 +3,68 @@
...
@@ -3,51 +3,68 @@
* @author 推广技术部
* @author 推广技术部
* @time: 2018-09-19
* @time: 2018-09-19
*/
*/
class
Wechat
SDK
{
class
Swan
SDK
{
private
sdkVersion
:
string
=
'1.
0'
;
private
sdkVersion
:
string
=
'1.
5'
public
constructor
()
{
public
constructor
()
{
this
.
sdkInit
();
this
.
sdkInit
();
this
.
timerInit
();
}
private
onlineTime
:
number
=
0
;
// 在线时长(单位:分钟)
private
timerInit
()
{
// 用户在线时间
const
_selt
=
this
;
let
loginTime
=
new
Date
().
getTime
();
// 登录时间
let
offTime
=
(
swan
as
any
).
getStorageSync
(
'offlineTime'
);
// 离线前记录的时间点
let
offlineTime
=
offTime
?
((
loginTime
-
offTime
)
/
(
1000
*
60
)).
toFixed
(
2
)
:
0
;
// 离线时长(分钟)
if
(
offlineTime
>
299
)
{
_selt
.
onlineTime
=
0
;
}
else
{
_selt
.
onlineTime
=
(
swan
as
any
).
getStorageSync
(
'onlineMinute'
)
||
0
;
}
setInterval
(
function
()
{
// 每分钟记录一次
_selt
.
onlineTime
++
;
let
curTime
=
new
Date
().
getTime
();
(
swan
as
any
).
setStorageSync
(
"onlineMinute"
,
_selt
.
onlineTime
);
(
swan
as
any
).
setStorageSync
(
"offlineTime"
,
curTime
);
},
60000
);
}
}
private
async
sdkInit
()
{
private
async
sdkInit
()
{
const
_selt
=
this
const
_selt
=
this
;
_selt
.
ReportParams
.
productCode
=
_selt
.
sdkParams
.
product_code
=
SDKConfig
.
productCode
_selt
.
ReportParams
.
productCode
=
_selt
.
sdkParams
.
product_code
=
bdSDKConfig
.
productCode
;
_selt
.
sdkParams
.
appid
=
SDKConfig
.
appid
_selt
.
sdkParams
.
appid
=
bdSDKConfig
.
appid
;
_selt
.
sdkParams
.
version
=
_selt
.
sdkVersion
_selt
.
sdkParams
.
version
=
_selt
.
sdkVersion
;
const
options
=
_selt
.
getOptionsInfo
()
// 返回参数对象
const
options
=
_selt
.
getOptionsInfo
()
;
// 返回参数对象
_selt
.
ReportParams
.
from
=
options
.
from
||
0
_selt
.
ReportParams
.
from
=
options
.
from
||
0
;
_selt
.
ReportParams
.
tag
=
options
.
tag
||
0
_selt
.
ReportParams
.
tag
=
options
.
tag
||
0
;
_selt
.
ReportParams
.
fromOpenId
=
options
.
fromOpenId
||
''
_selt
.
ReportParams
.
fromOpenId
=
options
.
fromOpenId
||
''
;
await
_selt
.
getNetworkType
()
await
_selt
.
getNetworkType
()
;
await
_selt
.
getSystemInfo
()
await
_selt
.
getSystemInfo
()
;
console
.
log
(
"@@SDK初始化结束"
,
_selt
.
ReportParams
)
console
.
log
(
"@@SDK初始化结束"
,
_selt
.
ReportParams
)
;
}
}
public
async
Login
()
{
public
async
Login
()
{
const
_selt
=
this
const
_selt
=
this
;
const
loginPromise
=
await
_selt
.
_login
()
// 微信
登录换取code
const
loginPromise
=
await
_selt
.
_login
()
;
//
登录换取code
let
loginPostData
=
_selt
.
deepCopy
({},
_selt
.
sdkParams
,
{
// 拼上appid和code
let
loginPostData
=
_selt
.
deepCopy
({},
_selt
.
sdkParams
,
{
// 拼上appid和code
appid
:
SDKConfig
.
appid
,
appid
:
bd
SDKConfig
.
appid
,
code
:
loginPromise
.
code
code
:
loginPromise
.
code
})
})
let
sdkLoginData
=
await
_selt
.
sdkRequest
(
Links
.
init
,
loginPostData
).
catch
(
err
=>
{
let
sdkLoginData
=
await
_selt
.
sdkRequest
(
bd
Links
.
init
,
loginPostData
).
catch
(
err
=>
{
_selt
.
Login
()
_selt
.
Login
()
;
})
})
;
if
(
sdkLoginData
.
code
==
0
)
{
if
(
sdkLoginData
.
code
==
0
)
{
_selt
.
ReportParams
.
openId
=
_selt
.
sdkParams
.
open_id
=
_selt
.
sdkParams
.
uniqueid
=
sdkLoginData
.
data
.
openid
_selt
.
ReportParams
.
openId
=
_selt
.
sdkParams
.
open_id
=
_selt
.
sdkParams
.
uniqueid
=
sdkLoginData
.
data
.
openid
;
_selt
.
sdkParams
.
session_key
=
sdkLoginData
.
data
.
session_key
_selt
.
sdkParams
.
session_key
=
sdkLoginData
.
data
.
session_key
;
}
}
return
_selt
.
sdkActive
()
return
_selt
.
sdkActive
()
;
}
}
private
getAuthorize
// 根据渠道判断是否开启用户授权
// SDK激活
// SDK激活
private
async
sdkActive
()
{
private
async
sdkActive
()
{
const
_selt
=
this
const
_selt
=
this
console
.
log
(
"@@SDK激活"
,
_selt
.
sdkParams
)
console
.
log
(
"@@SDK激活"
,
_selt
.
sdkParams
)
let
sdkActData
=
await
_selt
.
sdkRequest
(
Links
.
active
,
this
.
sdkParams
).
catch
(
err
=>
{
let
sdkActData
=
await
_selt
.
sdkRequest
(
bd
Links
.
active
,
this
.
sdkParams
).
catch
(
err
=>
{
console
.
log
(
"@@SDK激活异常:"
,
err
)
console
.
log
(
"@@SDK激活异常:"
,
err
)
_selt
.
sdkAlert
(
"@@SDK激活异常:"
+
err
)
_selt
.
sdkAlert
(
"@@SDK激活异常:"
+
err
)
});
});
_selt
.
sdkParams
.
pay_channel
=
sdkActData
.
data
.
default_pay_channel
;
_selt
.
sdkParams
.
pay_channel
=
sdkActData
.
data
.
default_pay_channel
||
''
;
_selt
.
getAuthorize
=
sdkActData
.
data
.
weixin_from
;
_selt
.
ActiReport
();
// 上报激活
_selt
.
ActiReport
();
// 上报激活
return
_selt
.
sdkLogin
();
return
_selt
.
sdkLogin
();
}
}
...
@@ -55,9 +72,8 @@ class WechatSDK {
...
@@ -55,9 +72,8 @@ class WechatSDK {
const
_selt
=
this
const
_selt
=
this
// 获取用户信息
// 获取用户信息
_selt
.
sdkParams
.
token
=
''
// 强制清空登录toekn
_selt
.
sdkParams
.
token
=
''
// 强制清空登录toekn
let
sdkLoginData
=
await
_selt
.
sdkRequest
(
Links
.
login
,
_selt
.
sdkParams
).
catch
(
err
=>
{
let
sdkLoginData
=
await
_selt
.
sdkRequest
(
bdLinks
.
login
,
_selt
.
sdkParams
).
catch
(
err
=>
{
console
.
log
(
"@@SDK登陆异常:"
,
err
)
console
.
log
(
"@@SDK登陆异常:"
,
err
);
_selt
.
sdkAlert
(
"@@SDK登陆异常:"
+
err
)
});
});
if
(
sdkLoginData
.
code
==
0
)
{
if
(
sdkLoginData
.
code
==
0
)
{
// 根据SDK返回用户状态来判断用户是否注册
// 根据SDK返回用户状态来判断用户是否注册
...
@@ -71,172 +87,96 @@ class WechatSDK {
...
@@ -71,172 +87,96 @@ class WechatSDK {
return
LoginCallBack
return
LoginCallBack
}
}
}
}
public
async
payOrderStatus
(
Params
)
{
let
payResult
=
await
this
.
payOrder
(
Params
,
false
);
return
payResult
;
}
// SDK支付接口
// SDK支付接口
public
payOrder
(
Params
)
{
public
async
payOrder
(
Params
,
showSDKAlert
=
true
)
{
const
_selt
=
this
let
_selt
=
this
;
_selt
.
MidasPaymentParams
.
offerId
=
SDKConfig
.
offerid
_selt
.
LoadingOn
();
_selt
.
LoadingOn
();
// 支付前先获取用户订单状态,如果没有未完成订单则继续支付
// 支付前先获取用户订单状态,如果没有未完成订单则继续支付
_selt
.
sdkRequest
(
Links
.
order
,
_selt
.
deepCopy
({},
_selt
.
sdkParams
,
Params
)).
then
(
res
=>
{
let
res
=
await
_selt
.
sdkRequest
(
bdLinks
.
order
,
_selt
.
deepCopy
({},
_selt
.
sdkParams
,
Params
)).
catch
(
err
=>
{
console
.
log
(
"@@订单返回---->"
,
res
)
if
(
res
.
code
==
0
)
{
if
(
res
.
data
.
weixin_mini_program_app_id
)
{
// 跳小程序支付
const
postParams
=
_selt
.
deepCopy
({},
_selt
.
sdkParams
,
Params
,
{
weixin_mini_program_app_id
:
res
.
data
.
weixin_mini_program_app_id
,
// 跳转小程序的appid,获取新openid用
sub_product_code
:
res
.
data
.
sub_product_code
,
// 跳转小程序的productcode
pay_channel
:
res
.
data
.
pay_channel
,
// 支付方式改变
productKey
:
SDKConfig
.
productKey
})
// 合并后附上签名参数
const
params
=
{
// 跳转参数
appId
:
res
.
data
.
weixin_mini_program_app_id
,
// 跳转的小程序appid
path
:
''
,
// 跳转到首页
envVersion
:
SDKConfig
.
navPayEnv
,
//跳转方式
extraData
:
postParams
,
success
:
()
=>
{
console
.
log
(
"跳转成功"
)
},
fail
:
()
=>
{
console
.
log
(
"跳转失败"
)
}
}
_selt
.
navigateToMiniProgram
(
params
)
}
else
{
// 根据返回的用户订单状态判断是新订单还是未完成订单
if
(
res
.
data
.
order_type
==
1
)
{
// 新订单
_selt
.
MidasPaymentParams
.
buyQuantity
=
<
number
>
(
Params
.
money
/
100
)
*
<
number
>
res
.
data
.
weixin_proportion
// 充值金额
console
.
log
(
"@@SDK -> 发起支付参数:"
,
_selt
.
MidasPaymentParams
);
// 调微信米大师支付接口
(
wx
as
any
).
requestMidasPayment
(
_selt
.
deepCopy
({},
_selt
.
MidasPaymentParams
,
{
success
:
function
(
data
)
{
console
.
log
(
"@@SDK -> 支付成功:"
,
data
)
_selt
.
getCoins
(
_selt
.
deepCopy
({},
_selt
.
sdkParams
,
{
order_num
:
res
.
data
.
order_num
}))
},
fail
:
function
(
err
)
{
// console.log("SDK -> 支付失败:", err);
var
msg
=
''
;
switch
(
err
.
errCode
)
{
case
-
1
:
msg
=
'系统失败'
;
break
;
case
-
2
:
msg
=
'支付取消'
;
break
;
case
-
15001
:
msg
=
'缺少参数'
;
break
;
case
-
15002
:
msg
=
'参数不合法'
;
break
;
case
-
15003
:
msg
=
'订单重复'
;
break
;
case
-
15004
:
msg
=
'后台错误'
;
break
;
case
-
15006
:
msg
=
'货币类型不支持'
;
break
;
case
-
15007
:
msg
=
'订单已支付'
;
break
;
case
1
:
msg
=
'用户取消支付'
;
break
;
case
3
:
msg
=
'Android 独有错误:用户使用 Google Play 支付,而手机未安装 Google Play'
;
break
;
case
4
:
msg
=
'用户操作系统支付状态异常'
;
break
;
}
_selt
.
sdkAlert
(
msg
);
}
}));
}
else
{
// 已有未完成订单,弹窗提示
const
params
=
{
title
:
SDKConfig
.
shareTitle
,
content
:
'订单发货中,请稍候下单..'
}
_selt
.
showModal
(
params
);
}
}
}
else
if
(
res
.
code
==
3023
)
{
const
params
=
{
title
:
'支付提示'
,
content
:
'受苹果政策影响,IOS暂未开放充值,目前可前往安卓系统上充值'
}
_selt
.
showModal
(
params
)
}
else
{
// 输出订单失败消息
const
errmsg
=
res
.
msg
||
'支付失败..'
_selt
.
sdkAlert
(
errmsg
)
}
_selt
.
LoadingOff
();
_selt
.
LoadingOff
();
},
err
=>
{
console
.
log
(
"@@SDK异常::payOrder"
,
err
);
_selt
.
LoadingOff
();
});
console
.
log
(
err
)
console
.
log
(
"@@订单返回---->"
,
res
);
})
_selt
.
LoadingOff
();
if
(
res
.
code
==
0
)
{
// 调微信米大师支付接口
return
new
Promise
((
resolve
,
reject
)
=>
{
(
swan
as
any
).
requestPolymerPayment
({
orderInfo
:
res
.
data
.
orderInfo
,
bannedChannels
:
res
.
data
.
bannedChannels
,
success
:
async
function
(
data
)
{
console
.
log
(
"@@SDK -> 支付成功:"
,
data
);
let
coinsResult
=
await
_selt
.
getCoins
(
_selt
.
deepCopy
({},
_selt
.
sdkParams
,
{
order_num
:
res
.
data
.
order_num
}));
if
(
coinsResult
.
code
==
0
)
resolve
(
200
);
else
resolve
(
0
);
},
fail
:
function
(
err
)
{
var
msg
=
err
.
errMsg
||
'支付失败...'
;
if
(
showSDKAlert
)
_selt
.
sdkAlert
(
msg
);
resolve
(
err
);
}
});
});
}
else
if
(
res
.
code
==
3023
)
{
if
(
showSDKAlert
)
_selt
.
sdkAlert
(
res
.
msg
);
return
3023
;
}
else
{
// 输出订单失败消息
const
errmsg
=
res
.
msg
||
'支付失败..'
if
(
showSDKAlert
)
_selt
.
sdkAlert
(
errmsg
);
return
0
;
}
}
}
private
getCoins
(
orderParams
)
{
// 通知服务端扣费
private
async
getCoins
(
orderParams
)
{
// 通知服务端扣费
console
.
log
(
"@@SDK通知扣费"
,
orderParams
)
console
.
log
(
"@@SDK通知扣费"
,
orderParams
)
this
.
sdkRequest
(
Links
.
pay
,
orderParams
).
then
(
res
=>
{
let
coinsResult
=
await
this
.
sdkRequest
(
bdLinks
.
pay
,
orderParams
).
catch
(
err
=>
{
console
.
log
(
"@@SDK -> 扣费成功:"
)
console
.
log
(
"@@SDK异常::getCoins"
,
err
);
})
});
return
coinsResult
;
}
}
public
async
getUserPaymentType
(
roleInfo
)
{
// 是否支持切支付
public
async
checkUserPhoneBind
()
{
// 查询用户绑定状态
const
_selt
=
this
;
const
_selt
=
this
;
const
postData
=
_selt
.
deepCopy
({},
_selt
.
sdkParams
,
roleInfo
);
let
postData
=
_selt
.
deepCopy
({},
_selt
.
sdkParams
,
{
uid
:
_selt
.
ReportParams
.
userId
}
);
let
payType
=
await
_selt
.
sdkRequest
(
Links
.
payTyp
e
,
postData
);
let
bindType
=
await
_selt
.
sdkRequest
(
bdLinks
.
bindPhon
e
,
postData
);
return
(
payType
.
code
=
==
0
);
return
(
bindType
.
code
==
0
);
}
}
public
async
phoneCode
(
phoneInfo
)
{
public
async
phoneCode
(
phoneInfo
,
callback
)
{
const
_selt
=
this
;
const
_selt
=
this
;
let
postData
=
this
.
deepCopy
({},
_selt
.
sdkParams
,
phoneInfo
);
let
postData
=
this
.
deepCopy
({},
_selt
.
sdkParams
,
phoneInfo
);
postData
.
type
=
'SDK.BIND_MOBILE'
;
// 小程序专属短信类型
postData
.
type
=
'SDK.BIND_MOBILE'
;
// 小程序专属短信类型
// 发送验证码接口
// 发送验证码接口
let
res
=
await
this
.
sdkRequest
(
Links
.
sendCode
,
postData
).
catch
(
err
=>
{
let
res
=
await
this
.
sdkRequest
(
bd
Links
.
sendCode
,
postData
).
catch
(
err
=>
{
console
.
log
(
"@@SDK::验证码发送失败"
,
err
);
console
.
log
(
"@@SDK::验证码发送失败"
,
err
);
_selt
.
sdkAlert
(
"发送失败,请重试.."
);
_selt
.
sdkAlert
(
"发送失败,请重试.."
);
});
});
if
(
res
.
code
!=
0
)
_selt
.
sdkAlert
(
res
.
msg
);
if
(
res
.
code
==
0
)
{
callback
(
true
);
}
else
{
callback
(
false
);
}
}
}
public
async
userPhone
(
phoneInfo
,
callback
)
{
public
async
userPhone
(
phoneInfo
,
callback
)
{
const
_selt
=
this
;
const
_selt
=
this
;
let
postData
=
this
.
deepCopy
({},
_selt
.
sdkParams
,
phoneInfo
);
let
postData
=
this
.
deepCopy
({},
_selt
.
sdkParams
,
phoneInfo
);
postData
.
source
=
'
WEIXIN
'
;
// 用户平台来源
postData
.
source
=
'
BAIDU
'
;
// 用户平台来源
//保存用户手机信息
//保存用户手机信息
let
res
=
await
this
.
sdkRequest
(
Links
.
saveNum
,
postData
).
catch
(
err
=>
{
let
res
=
await
this
.
sdkRequest
(
bd
Links
.
saveNum
,
postData
).
catch
(
err
=>
{
console
.
log
(
"@@SDK::保存手机失败"
,
err
);
console
.
log
(
"@@SDK::保存手机失败"
,
err
);
});
});
if
(
res
.
code
==
0
)
{
if
(
res
.
code
==
0
)
{
console
.
log
(
"绑定成功..."
);
callback
(
true
);
callback
(
true
);
}
else
{
}
else
{
console
.
log
(
"@@绑定失败::"
,
res
.
msg
);
console
.
log
(
"@@绑定失败::"
,
res
.
msg
);
callback
(
false
);
callback
(
false
);
}
}
}
}
public
async
checkUserAdvised
()
{
// 防沉迷验证
public
checkUserAdvised
()
{
// 防沉迷验证
const
_selt
=
this
;
const
_selt
=
this
;
// const postData: Object = {};
let
time
=
_selt
.
onlineTime
*
60
;
// 转成成秒
// let time = await _selt.sdkRequest(Links.playTime, postData);
return
time
;
let
time
=
80000
;
return
new
Promise
((
resolve
,
reject
)
=>
{
(
swan
as
any
).
checkIsUserAdvisedToRest
({
todayPlayedTime
:
time
,
success
:
function
(
res
)
{
resolve
(
res
.
result
);
},
fail
:
function
(
res
)
{
reject
(
res
);
},
})
});
}
// 米大师支付参数
private
MidasPaymentParams
=
{
mode
:
'game'
,
// 支付的类型
env
:
SDKConfig
.
midasPayEnv
,
// 米大师环境
offerId
:
null
,
// 在米大师侧申请的应用id
currencyType
:
'CNY'
,
// 币种
platform
:
'android'
,
buyQuantity
:
10
,
// buyQuantity * 游戏币单价 = 限定的价格等级(1,3,6,8,12,18,25,30,40,45,50,60,68,73,78,88,98,108,118,128,148,168,188,198,328,648)
zoneId
:
'1'
,
// 分区ID,默认1
}
}
//把字符串转换成json
//把字符串转换成json
private
toJson
(
str
:
string
)
{
private
toJson
(
str
:
string
)
{
...
@@ -248,6 +188,18 @@ class WechatSDK {
...
@@ -248,6 +188,18 @@ class WechatSDK {
}
}
return
json
return
json
}
}
public
async
exitApp
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
(
swan
as
any
).
exit
({
success
:
function
(
res
)
{
resolve
(
1
);
},
fail
:
function
(
err
)
{
resolve
(
0
);
}
});
});
}
//接口签名,直接返回完整对象
//接口签名,直接返回完整对象
private
md5_sign
(
obj
)
{
private
md5_sign
(
obj
)
{
obj
.
time
=
Date
.
parse
(
new
Date
().
toString
())
// 获取请求的时间戳秒
obj
.
time
=
Date
.
parse
(
new
Date
().
toString
())
// 获取请求的时间戳秒
...
@@ -256,7 +208,7 @@ class WechatSDK {
...
@@ -256,7 +208,7 @@ class WechatSDK {
for
(
let
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
if
(
keys
[
i
]
!=
'sign'
)
key_url
+=
keys
[
i
]
+
'='
+
obj
[
keys
[
i
]]
+
'&'
if
(
keys
[
i
]
!=
'sign'
)
key_url
+=
keys
[
i
]
+
'='
+
obj
[
keys
[
i
]]
+
'&'
}
}
key_url
=
key_url
+
SDKConfig
.
productKey
key_url
=
key_url
+
bd
SDKConfig
.
productKey
obj
.
sign
=
md5
(
key_url
)
obj
.
sign
=
md5
(
key_url
)
return
obj
return
obj
}
}
...
@@ -324,11 +276,10 @@ class WechatSDK {
...
@@ -324,11 +276,10 @@ class WechatSDK {
return
target
return
target
}
}
// 获取启动参数
// 获取启动参数
public
getOptionsInfo
(
all
?
)
{
public
getOptionsInfo
()
{
const
_selt
=
this
const
_selt
=
this
const
options
=
(
swan
as
any
).
getLaunchOptionsSync
()
const
options
=
(
swan
as
any
).
getLaunchOptionsSync
();
console
.
log
(
"@@启动参数--->"
,
options
)
console
.
log
(
"@@启动参数--->"
,
options
);
if
(
all
)
return
options
if
(
options
.
query
&&
Object
.
keys
(
options
.
query
).
length
>
0
)
{
if
(
options
.
query
&&
Object
.
keys
(
options
.
query
).
length
>
0
)
{
if
(
options
.
query
.
scene
&&
options
.
query
.
scene
!=
''
)
{
// 扫码参数
if
(
options
.
query
.
scene
&&
options
.
query
.
scene
!=
''
)
{
// 扫码参数
const
scene
=
_selt
.
toJson
(
decodeURIComponent
(
options
.
query
.
scene
))
const
scene
=
_selt
.
toJson
(
decodeURIComponent
(
options
.
query
.
scene
))
...
@@ -341,7 +292,7 @@ class WechatSDK {
...
@@ -341,7 +292,7 @@ class WechatSDK {
}
}
}
}
public
getLaunchOptions
()
{
public
getLaunchOptions
()
{
return
(
swan
as
any
).
getLaunchOptionsSync
()
return
(
swan
as
any
).
getLaunchOptionsSync
()
;
}
}
private
async
getNetworkType
()
{
private
async
getNetworkType
()
{
const
_selt
=
this
const
_selt
=
this
...
@@ -390,26 +341,11 @@ class WechatSDK {
...
@@ -390,26 +341,11 @@ class WechatSDK {
}
catch
(
err
)
{
}
}
catch
(
err
)
{
}
});
});
}
}
// 退出小游戏
public
async
exitApp
():
Promise
<
any
>
{
return
new
Promise
((
resolve
,
reject
)
=>
{
(
wx
as
any
).
exitMiniProgram
({
success
:
(
res
)
=>
{
console
.
log
(
'退出成功'
)
resolve
(
res
)
},
fail
:
(
res
)
=>
{
console
.
log
(
'退出失败'
)
reject
(
res
)
}
})
})
}
// SDK上报接口
// SDK上报接口
private
sdkRequest
(
link
:
string
,
portData
)
{
private
sdkRequest
(
link
:
string
,
portData
,
method
?
)
{
this
.
md5_sign
(
portData
)
// 附上签名参数
this
.
md5_sign
(
portData
)
// 附上签名参数
console
.
log
(
"##SDK激活上报参数"
,
portData
)
console
.
log
(
"##SDK激活上报参数"
,
portData
)
return
this
.
request
(
link
,
portData
)
return
this
.
request
(
link
,
portData
,
method
)
}
}
// 上报激活
// 上报激活
public
ActiReport
()
{
public
ActiReport
()
{
...
@@ -425,13 +361,15 @@ class WechatSDK {
...
@@ -425,13 +361,15 @@ class WechatSDK {
}
}
// 数据上报接口,外部调用,参数中必须含有action值
// 数据上报接口,外部调用,参数中必须含有action值
public
ReportData
(
portData
)
{
public
ReportData
(
portData
)
{
const
that
=
this
const
that
=
this
;
portData
=
that
.
deepCopy
({},
that
.
ReportParams
,
portData
)
portData
=
that
.
deepCopy
({},
that
.
ReportParams
,
portData
)
;
portData
.
time
=
Date
.
parse
(
new
Date
().
toString
())
// 获取当前时间戳秒
portData
.
time
=
Date
.
parse
(
new
Date
().
toString
())
// 获取当前时间戳秒
console
.
log
(
"##SDK统计上报参数"
,
portData
)
console
.
log
(
"##SDK统计上报参数"
,
portData
);
this
.
request
(
SDKConfig
.
report
,
portData
,
'POST'
)
this
.
request
(
bdSDKConfig
.
report
,
portData
,
'POST'
).
catch
(
err
=>
{
console
.
log
(
"##SDK统计上报异常"
,
err
);
});
}
}
// 调用
微信
请求接口
// 调用请求接口
private
request
(
URI
:
string
,
Params
:
any
,
Method
=
'GET'
)
{
private
request
(
URI
:
string
,
Params
:
any
,
Method
=
'GET'
)
{
return
this
.
fetchUri
(
URI
,
Params
,
Method
).
then
(
res
=>
res
.
data
)
return
this
.
fetchUri
(
URI
,
Params
,
Method
).
then
(
res
=>
res
.
data
)
}
}
...
@@ -443,7 +381,8 @@ class WechatSDK {
...
@@ -443,7 +381,8 @@ class WechatSDK {
method
:
METHOD
,
method
:
METHOD
,
data
:
DATA
,
data
:
DATA
,
header
:
{
header
:
{
'Content-Type'
:
'json'
'Accept'
:
'application/json'
,
'Content-Type'
:
'application/x-www-form-urlencoded;charset=utf-8'
},
},
success
:
resolve
,
success
:
resolve
,
fail
:
reject
fail
:
reject
...
@@ -455,29 +394,11 @@ class WechatSDK {
...
@@ -455,29 +394,11 @@ class WechatSDK {
}
}
// 消息提示框
// 消息提示框
public
sdkAlert
(
str
)
{
public
sdkAlert
(
str
)
{
this
.
showMsg
(
str
)
}
private
showMsg
(
str
)
{
(
swan
as
any
).
showToast
({
(
swan
as
any
).
showToast
({
title
:
str
,
title
:
str
,
icon
:
'none'
,
icon
:
'none'
,
duration
:
3000
duration
:
3000
})
});
}
// 客服
public
Customer
()
{
try
{
(
wx
as
any
).
openCustomerServiceConversation
({})
}
catch
(
err
)
{
console
.
log
(
"访问客服异常-->"
,
err
)
}
}
private
navigateToMiniProgram
(
params
)
{
if
(
this
.
ReportParams
.
SDKVersion
<
'2.2'
)
{
this
.
sdkAlert
(
'微信版本不兼容,请升级..'
)
}
else
{
(
wx
as
any
).
navigateToMiniProgram
(
params
)
}
}
}
private
LoadingOn
()
{
private
LoadingOn
()
{
(
swan
as
any
).
showLoading
({
(
swan
as
any
).
showLoading
({
...
@@ -488,107 +409,44 @@ class WechatSDK {
...
@@ -488,107 +409,44 @@ class WechatSDK {
private
LoadingOff
()
{
private
LoadingOff
()
{
(
swan
as
any
).
hideLoading
()
(
swan
as
any
).
hideLoading
()
}
}
private
showModal
(
DATA
)
{
(
wx
as
any
).
showModal
(
this
.
deepCopy
({},
DATA
,
{
cancelText
:
'取消'
,
confirmText
:
'确认'
}))
}
// 定义wechat方法
// 定义wechat方法
public
async
getUserInfo
():
Promise
<
any
>
{
public
async
getUserInfo
():
Promise
<
any
>
{
const
_selt
=
this
const
_selt
=
this
return
new
Promise
(
async
function
(
resolve
,
reject
)
{
return
new
Promise
(
async
function
(
resolve
,
reject
)
{
let
status
=
await
_selt
.
_getSetting
();
let
status
=
await
_selt
.
_getSetting
();
console
.
log
(
"@@SDK用户授权状态"
,
status
)
if
(
status
==
0
)
{
switch
(
status
)
{
(
swan
as
any
).
authorize
({
// 拉起授权
case
1
:
scope
:
'scope.userInfo'
,
try
{
success
:
async
function
(
res
)
{
// 用户已授权,可以直接调用相关 API
let
userInfo
=
await
_selt
.
_getUserInfo
().
catch
(
err
=>
{
let
userInfo
=
await
_selt
.
_getUserInfo
();
console
.
log
(
"$$SDK授权失败"
,
err
);
});
// 上报用户授权
// 上报用户授权
_selt
.
ReportData
(
_selt
.
deepCopy
({},
userInfo
,
{
_selt
.
ReportData
(
_selt
.
deepCopy
({},
userInfo
,
{
action
:
'authorize'
,
action
:
'authorize'
,
nickName
:
encodeURI
(
userInfo
.
nickName
)
nickName
:
encodeURI
(
userInfo
.
nickName
)
}))
}))
;
resolve
(
userInfo
);
resolve
(
userInfo
);
}
catch
(
err
)
{
},
let
userBtn
=
_selt
.
createUserInfoButton
();
fail
:
function
(
err
)
{
userBtn
.
onTap
(
resolve
(
-
1
);
// 用户取消授权
function
(
res
)
{
if
(
res
.
userInfo
)
{
//上报授权
userBtn
.
offTap
(
this
);
userBtn
.
destroy
();
userBtn
=
null
;
var
userInfo
=
res
[
"userInfo"
];
// 上报用户授权
_selt
.
ReportData
(
_selt
.
deepCopy
({},
userInfo
,
{
action
:
'authorize'
,
nickName
:
encodeURI
(
userInfo
.
nickName
)
}))
resolve
(
userInfo
);
}
}
);
}
}
break
;
});
case
0
:
}
else
{
// 用户已拒绝授权,再调用相关 API 或者 wx.authorize 会失败,需要引导用户到设置页面打开授权开关
// 用户已授权,可以直接调用相关 API
var
w
=
(
swan
as
any
).
getSystemInfoSync
().
windowWidth
;
let
userInfo
=
await
_selt
.
_getUserInfo
();
var
h
=
(
swan
as
any
).
getSystemInfoSync
().
windowHeight
;
// 上报用户授权
var
OpenSettingButton
=
(
swan
as
any
).
createOpenSettingButton
({
_selt
.
ReportData
(
_selt
.
deepCopy
({},
userInfo
,
{
type
:
"text"
,
action
:
'authorize'
,
text
:
""
,
nickName
:
encodeURI
(
userInfo
.
nickName
)
style
:
{
}));
left
:
0
,
resolve
(
userInfo
);
top
:
0
,
width
:
w
,
height
:
h
}
});
OpenSettingButton
.
onTap
(
async
function
(
res
)
{
let
t_status
=
await
_selt
.
_getSetting
();
console
.
log
(
"@@SDK:点击设置按钮返回t_status="
,
t_status
);
if
(
t_status
==
1
)
{
OpenSettingButton
.
offTap
(
this
);
OpenSettingButton
.
destroy
();
OpenSettingButton
=
null
;
var
userInfo
=
await
_selt
.
_getUserInfo
();
// 上报用户授权
_selt
.
ReportData
(
_selt
.
deepCopy
({},
userInfo
,
{
action
:
'authorize'
,
nickName
:
encodeURI
(
userInfo
.
nickName
)
}))
resolve
(
userInfo
);
}
});
break
;
case
-
1
:
let
userBtn
=
_selt
.
createUserInfoButton
();
userBtn
.
onTap
(
function
(
res
)
{
if
(
res
.
userInfo
)
{
//上报授权
userBtn
.
offTap
(
this
);
userBtn
.
destroy
();
userBtn
=
null
;
var
userInfo
=
res
[
"userInfo"
];
// 上报用户授权
_selt
.
ReportData
(
_selt
.
deepCopy
({},
userInfo
,
{
action
:
'authorize'
,
nickName
:
encodeURI
(
userInfo
.
nickName
)
}))
resolve
(
userInfo
);
}
}
);
break
;
}
}
})
})
}
}
private
createUserInfoButton
()
{
private
createUserInfoButton
()
{
const
_selt
=
this
;
const
_selt
=
this
;
// 未询问过用户授权,调用相关 API 或者
wx
.authorize 会弹窗询问用户
// 未询问过用户授权,调用相关 API 或者
swan
.authorize 会弹窗询问用户
var
w
=
(
swan
as
any
).
getSystemInfoSync
().
windowWidth
;
var
w
=
(
swan
as
any
).
getSystemInfoSync
().
windowWidth
;
var
h
=
(
swan
as
any
).
getSystemInfoSync
().
windowHeight
;
var
h
=
(
swan
as
any
).
getSystemInfoSync
().
windowHeight
;
let
userBtn
=
(
swan
as
any
).
createUserInfoButton
({
let
userBtn
=
(
swan
as
any
).
createUserInfoButton
({
...
@@ -671,13 +529,10 @@ class WechatSDK {
...
@@ -671,13 +529,10 @@ class WechatSDK {
(
swan
as
any
).
shareAppMessage
(
_selt
.
deepCopy
(
DATA
,
{
(
swan
as
any
).
shareAppMessage
(
_selt
.
deepCopy
(
DATA
,
{
withShareTicket
:
true
,
withShareTicket
:
true
,
success
:
res
=>
{
success
:
res
=>
{
resolve
(
1
)
resolve
(
1
)
;
},
},
fail
:
res
=>
{
fail
:
res
=>
{
resolve
(
-
1
)
resolve
(
-
1
);
},
complete
()
{
resolve
(
0
);
}
}
}))
}))
setTimeout
(
function
()
{
// 两秒后直接当分享成功返回,避免回调取消引起await问题
setTimeout
(
function
()
{
// 两秒后直接当分享成功返回,避免回调取消引起await问题
...
@@ -698,13 +553,13 @@ class WechatSDK {
...
@@ -698,13 +553,13 @@ class WechatSDK {
})
})
}
}
// 分享
// 分享
public
addShareEvent
(
shareInfo
:
shareInfo
,
callback
?)
{
public
addShareEvent
(
shareInfo
:
bf
shareInfo
,
callback
?)
{
const
that
=
this
;
const
that
=
this
;
(
swan
as
any
).
onShareAppMessage
(()
=>
{
(
swan
as
any
).
onShareAppMessage
(()
=>
{
if
(
callback
)
callback
();
if
(
callback
)
callback
();
const
ShareParams
=
{
const
ShareParams
=
{
title
:
shareInfo
.
title
?
shareInfo
.
title
:
SDKConfig
.
shareTitle
,
title
:
shareInfo
.
title
?
shareInfo
.
title
:
bd
SDKConfig
.
shareTitle
,
imageUrl
:
shareInfo
.
image
?
shareInfo
.
image
:
SDKConfig
.
shareImageUrl
,
imageUrl
:
shareInfo
.
image
?
shareInfo
.
image
:
bd
SDKConfig
.
shareImageUrl
,
query
:
'fromOpenId='
+
that
.
ReportParams
.
openId
+
'&from=share&tag=0&'
+
(
shareInfo
.
query
?
shareInfo
.
query
:
''
),
query
:
'fromOpenId='
+
that
.
ReportParams
.
openId
+
'&from=share&tag=0&'
+
(
shareInfo
.
query
?
shareInfo
.
query
:
''
),
withShareTicket
:
true
,
withShareTicket
:
true
,
success
:
shareInfo
.
success
,
success
:
shareInfo
.
success
,
...
@@ -713,14 +568,14 @@ class WechatSDK {
...
@@ -713,14 +568,14 @@ class WechatSDK {
};
};
return
ShareParams
return
ShareParams
})
})
that
.
shareInit
()
that
.
shareInit
()
;
}
}
public
ShareApp
(
params
?:
string
)
{
public
ShareApp
(
params
?:
string
)
{
const
that
=
this
const
that
=
this
// 参数,记录分享的用户openid
// 参数,记录分享的用户openid
const
ShareParams
=
{
const
ShareParams
=
{
title
:
SDKConfig
.
shareTitle
,
title
:
bd
SDKConfig
.
shareTitle
,
imageUrl
:
SDKConfig
.
shareImageUrl
,
imageUrl
:
bd
SDKConfig
.
shareImageUrl
,
query
:
'fromOpenId='
+
that
.
ReportParams
.
openId
+
'&from=share&tag=0&'
+
(
params
?
params
:
''
)
query
:
'fromOpenId='
+
that
.
ReportParams
.
openId
+
'&from=share&tag=0&'
+
(
params
?
params
:
''
)
}
}
return
this
.
share
(
ShareParams
)
return
this
.
share
(
ShareParams
)
...
@@ -740,48 +595,48 @@ class WechatSDK {
...
@@ -740,48 +595,48 @@ class WechatSDK {
language
:
null
,
// 选填,微信设置的语言,微信api获取
language
:
null
,
// 选填,微信设置的语言,微信api获取
version
:
null
,
// 选填,微信版本号,微信api获取
version
:
null
,
// 选填,微信版本号,微信api获取
SDKVersion
:
null
,
// 选填,微信客户端基础库版本
SDKVersion
:
null
,
// 选填,微信客户端基础库版本
appVersion
:
null
,
// 选填,产品版本号,配置文件配置
appVersion
:
bdSDKConfig
.
appVersion
,
// 选填,产品版本号,配置文件配置
screenWidth
:
null
,
// 选填,屏幕宽度,微信api获取
screenWidth
:
null
,
// 选填,屏幕宽度,微信api获取
screenHeight
:
null
,
// 选填,屏幕高度,微信api获取
screenHeight
:
null
,
// 选填,屏幕高度,微信api获取
time
:
null
// 必填,请求的时间戳(秒)
time
:
null
// 必填,请求的时间戳(秒)
}
}
// SDK上报参数
// SDK上报参数
private
sdkParams
=
{
private
sdkParams
=
{
product_code
:
null
,
// 产品code
product_code
:
""
,
// 产品code
appid
:
null
,
// 小游戏appid
appid
:
""
,
// 小游戏appid
time
:
null
,
// 当前时间戳秒
time
:
""
,
// 当前时间戳秒
uniqueid
:
''
,
// 设备唯一号
uniqueid
:
''
,
// 设备唯一号
mac
:
''
,
// 网卡mac地址
mac
:
''
,
// 网卡mac地址
idfa
:
''
,
// 苹果设备IDFA
idfa
:
''
,
// 苹果设备IDFA
open_id
:
null
,
// 用户openid
open_id
:
""
,
// 用户openid
password
:
''
,
// 登录密码(
微信
免密)
password
:
''
,
// 登录密码(免密)
source
:
'
WEIXIN
'
,
// 用户来源
source
:
'
BAIDU
'
,
// 用户来源
token
:
''
,
// 登录成功返回
token
:
''
,
// 登录成功返回
os
:
'H5'
,
// 系统类型
os
:
'H5'
,
// 系统类型
equipmentos
:
null
,
// 系统版本
equipmentos
:
""
,
// 系统版本
equipmentname
:
null
,
// 手机型号
equipmentname
:
""
,
// 手机型号
version
:
null
,
// SDK版本
version
:
""
,
// SDK版本
package_code
:
''
,
// 渠道标识
package_code
:
''
,
// 渠道标识
sign
:
null
,
// 签名
sign
:
""
,
// 签名
unionid
:
''
,
// 用户Unionid,用于切支付
unionid
:
''
,
// 用户Unionid,用于切支付
pay_channel
:
''
,
// 支付方式,初始化接口返回
pay_channel
:
''
,
// 支付方式,初始化接口返回
client_type
:
'
weixin
_minigame'
,
// 客户端类型
client_type
:
'
baidu
_minigame'
,
// 客户端类型
session_key
:
''
// 用户session_key
session_key
:
''
// 用户session_key
}
}
}
}
// SDK后端接口(勿改)
// SDK后端接口(勿改)
const
Links
=
{
const
bd
Links
=
{
init
:
SDKConfig
.
sdk_domain
+
'/weixin/access_token.php
'
,
// 获取openid
init
:
bdSDKConfig
.
sdk_domain
+
'/v2/baidu/code2accessToken
'
,
// 获取openid
active
:
SDKConfig
.
sdk_domain
+
'/appInit.php'
,
// SDK初始化接口
active
:
bd
SDKConfig
.
sdk_domain
+
'/appInit.php'
,
// SDK初始化接口
login
:
SDKConfig
.
sdk_domain
+
'/login.php'
,
// SDK登录接口,获取用户平台信息
login
:
bd
SDKConfig
.
sdk_domain
+
'/login.php'
,
// SDK登录接口,获取用户平台信息
order
:
SDKConfig
.
pay_domain
+
'/pay.php'
,
//订单接口
order
:
bd
SDKConfig
.
pay_domain
+
'/pay.php'
,
//订单接口
pay
:
SDKConfig
.
pay_domain
+
'/notify/midas/pay.php'
,
//扣费接口
pay
:
bd
SDKConfig
.
pay_domain
+
'/notify/midas/pay.php'
,
//扣费接口
payType
:
SDKConfig
.
pay_domain
+
'/pay_channel/status.php'
,
// 查询支付状态
sendCode
:
bdSDKConfig
.
sdk_domain
+
'/sms/send.php'
,
// 发送验证码
s
endCode
:
SDKConfig
.
sdk_domain
+
'/sms/send.php'
,
// 发送验证
码
s
aveNum
:
bdSDKConfig
.
sdk_domain
+
'/bind/mobile.php'
,
// 保存手机号
码
saveNum
:
SDKConfig
.
sdk_domain
+
'/bind/mobile.php'
,
// 保存手机号码
playTime
:
bdSDKConfig
.
sdk_domain
+
''
,
// 获取用户在线时长
playTime
:
SDKConfig
.
sdk_domain
+
''
// 获取用户在线时长
bindPhone
:
bdSDKConfig
.
sdk_domain
+
'/bind/is_bind_mobile.php'
,
// 用户手机绑定状态
}
}
class
shareInfo
{
class
bf
shareInfo
{
title
?:
string
title
?:
string
image
?:
string
image
?:
string
query
?:
string
query
?:
string
...
...
baidu_sdk_release/SDKConfig.ts
浏览文件 @
9af99f49
const
SDKConfig
=
{
const
bd
SDKConfig
=
{
// 配置项目参数
// 配置项目参数
sdk_domain
:
'https://account.
jinsdk
.com'
,
// SDK上报的接口域名
sdk_domain
:
'https://account.
pthc8
.com'
,
// SDK上报的接口域名
pay_domain
:
'https://pay.
jinsdk
.com'
,
// 支付接口域名
pay_domain
:
'https://pay.
pthc8
.com'
,
// 支付接口域名
report
:
'https://s.
jinsdk.com/weixinmp
/api.php'
,
// 数据上报接口域名
report
:
'https://s.
pthc8.com/xyx/baidu
/api.php'
,
// 数据上报接口域名
appid
:
"
wx953104af9b9484c8
"
,
// 换openid
appid
:
"
14833581
"
,
// 换openid
appName
:
"推广部测试应用"
,
// 应用名称
appName
:
"推广部测试应用"
,
// 应用名称
productCode
:
"
bae1e6462676d2e41991e7589fe12979
"
,
// 产品code
productCode
:
"
8ccdae27ceaf32736663198f31547b64
"
,
// 产品code
productKey
:
"
8b4dd1cf4e5b8f100c44d427953f9892
"
,
// 产品key,用于生成签名
productKey
:
"
dc7c83c87db860e3757269963c9fa2a0
"
,
// 产品key,用于生成签名
appVersion
:
"产品版本号(cp)"
,
// 产品版本号
appVersion
:
"产品版本号(cp)"
,
// 产品版本号
offerid
:
"1450018223"
,
// 支付
payEnv
:
'0'
,
// 米大师支付环境 0:正式环境, 1:沙盒模式
midasPayEnv
:
'1'
,
// 米大师支付环境 0:正式环境, 1:沙盒模式
navPayEnv
:
'trial'
,
//切支付跳转方式 体验版:trial 开发版:develop 正式版:release
shareTitle
:
"鲸鱼推广部"
,
// 分享标题
shareTitle
:
"鲸鱼推广部"
,
// 分享标题
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论