支付联想t16
联想t16 时间:2021-04-02 阅读:(
)
1联想网游SDK接入指导——安全域申请表接入方式V1.
2联想ECS2014年6月2目录联想网游SDK接入指导——安全域申请表接入方式.
11.
手机游戏联运接入流程.
51.
1获取Lenovo网游接入参数.
52.
联想网游SDK介绍.
63.
集成联想网游SDK.
73.
1SDK压缩包组成83.
2集成资源工程.
83.
3配置游戏AndroidManifest.
xml文件.
83.
3.
1添加meta-data,activity,receiver和service到游戏AndroidManifest.
xml中.
93.
3.
2修改游戏原有入口activity标识的配置项.
143.
3.
3增加Permission144.
集成联想网游SDK代码.
154.
1第一步:调用SDK初始化:LenovoGameApi.
doInit(154.
2第二步:调用自动登录:LenovoGameApi.
doAutoLogin(154.
3第三步:调用支付:LenovoGameApi.
doPay(154.
4示例代码.
155.
联想网游SDK详细说明.
155.
1LenovoID身份认证流程.
165.
2联想支付流程.
165.
3API详细说明175.
3.
1SDK初始化API175.
3.
2自动登录API.
185.
3.
3帐号登录回调API.
185.
3.
4获取STAPI(不常用)185.
3.
5支付和结果校验API.
196.
混淆配置.
217.
接入注意事项.
231)接入关键检查点.
242)独立包名248.
服务端验证LenovoIDToken(ST)2439.
服务端支付通知接口.
284修改历史版本日期备注修改人0.
120140610最初版本王文全0.
520140615调整结构,增加内容戴辉0.
820140616增加手机游戏联运接入流程刘小帅1.
020140620增加验证错误码戴辉1.
120140630根据CP反馈修改戴辉1.
220140714Manifest中增加一个activity戴辉1.
320141107Manifest支付activity集成调整王文全51.
手机游戏联运接入流程联想手机游戏(网游)SDK是联想生态系统和云服务业务集团推出的面向所有Android手机游戏,整合了联想帐号(联想ID)统一认证、游戏应用内计费和支付等多平台支撑能力,游戏应用只需集成本SDK即可.
游戏开发者可以按照以下流程接入Lenovo网游.
1.
1获取Lenovo网游接入参数联想网游的接入参数如下图所示:表1-1参数获取列表参数获取方式备注Realm安全域申请表ApplicationToken安全域申请表Appkey(支付秘钥)计费后台参照图1-1Appid(应用代码)计费后台参照图1-1Waresid计费后台参照图1-1如果您的游戏之前已经接入过之前版本的联想网游SDK,您应该已经获取了联想网游的接入参数.
您可以继续使用之前获得的接入参数进行新版本的联想网游SDK接入.
图1-1是针对支付的Appkey、Appid、Waresid获取方法的说明.
图1-1参数获取列表4、提交Lenovo测试验证通过3、集成Lenovo网游SDK2、获取开发者指南和SDK开发包1、获取realm和ApplicationToken等参数62.
联想网游SDK介绍联想网游SDK是联想为联运的网游提供的接入SDK.
联想网游SDK的功能包括:1.
游戏启动时显示联想欢迎界面2.
帮助用户进行自动登录或手动登录3.
登录完成进入游戏后,显示联想网游工具栏(注:网游工具栏只有在对应的游戏具有攻略、礼包、论坛板块3项中至少1项的时候,才会出现.
否则工具栏自动隐藏)4.
需要支付时,启动联想收银台进行支付下图是联想网游SDK的运行过程中的重要步骤.
7联想网游欢迎页登录提示手动登录登录进行中获取ST进行中登录成功显示游戏工具条打开收联想银台3.
集成联想网游SDK83.
1SDK压缩包组成|---DOC//联想网游SDK文档存放目录,包含《联想游戏SDK快速指导-OpenAppID接入方式-vx.
x》和《请先阅读了解接入参数区别》|---Demo_SRC//联想网游SDK示例demo应用源码目录|---SDK//联想网游SDK资源工程存放目录|---Demo_Sample//联想网游SDK示例APK以及游戏服务端计费源码示例存放目录|---计费服务端示例代码//游戏服务端计费功能相关示例代码|---Demo.
apk//联想网游SDK示例APK|---游戏图标角标//联运游戏桌面图标角标Logo放置说明和角标资源文件3.
2集成资源工程第一步:将"SDK"目录导入到eclipse工程中第二步:右键该工程->properties->Android第三步:右键自己的工程->properties->Android,点击add添加即可3.
3配置游戏AndroidManifest.
xml文件对游戏AndroidManifest.
xml配置也可以参看联想提供的gamesdk_sample下的AndroidManifest.
xml.
93.
3.
1添加meta-data,activity,receiver和service到游戏AndroidManifest.
xml中1012注:以上全部组件需要添加在内部.
3.
3.
2修改游戏原有入口activity标识的配置项为了使Welcome页面成为游戏的首个页面,应该修改原游戏应用的主入口activity的intent-filter配置如下;intent-filter节点中的配置必须如红字处写法一致,否则会导致无法启动!
3.
3.
3增加Permission154.
集成联想网游SDK代码通常情况下,推荐开发者使用如下的快速方式集成代码.
快速接入只需要调用以下3个主要API,每个API的详细说明见本文5.
3部分.
4.
1第一步:调用SDK初始化:LenovoGameApi.
doInit()游戏应用初始启动时,调用LenovoGameApi.
doInit()接口进行游戏sdk的初始化.
4.
2第二步:调用自动登录:LenovoGameApi.
doAutoLogin()在原主入口Activity中调用快速登录接口LenovoGameApi.
doAutoLogin(),进行自动登录操作.
(游戏启动时,联想游戏欢迎页会效果持续1s,之后会进入到游戏原初始页面.
)4.
3第三步:调用支付:LenovoGameApi.
doPay()游戏中需要支付时,调用联想网游SDK的LenovoGameApi.
doPay()接口进行支付.
4.
4示例代码以上接口的示例代码在联想提供的Demo_SRC中.
具体路径为:Demo_SRC\src\com\lenovo\id\pay\sample\*.
5.
联想网游SDK详细说明165.
1LenovoID身份认证流程1)集成联想网游SDK,登录取得ST(token)2)将获取到的token传递到游戏服务器3)通过LenovoIDWebAPI验证ST的有效性,同时获取用户的唯一ID5.
2联想支付流程联想支付平台目前提供的购买模式为同步购买.
在调用接口后,应程序需要同步等待支付结果的通知.
在玩家使用联想快捷支付支付成功后,支付平台会通知应用程序客户端.
如果应用有服务端对接,支付结果也会通知到游戏服务端的地址.
支付结果通知的详细介绍请参照5.
3.
5支付和结果校验API部分的说明具体支付流程如下:175.
3API详细说明5.
3.
1SDK初始化APIAPI:LenovoGameApi.
doInit(Activityactivity,Stringappid)功能:进行gamesdk使用前的初始化工作.
注意:此接口必须主线程调用.
参数:activity:注意这里一定要传Activity实例的context,否则在ICS以下版本的android系统上可能会出现类型转换错误;appid:用户申请的支付appid(应用代码);调用示例:privatevoidinitViews(){//加载游戏资源setContentView(R.
layout.
load_resource);//SDK初始化LenovoGameApi.
doInit(GameLauncherActivity.
this,Config.
appid);……}185.
3.
2自动登录APIAPI:LenovoGameApi.
doAutoLogin(Activityactivity,finalIAuthResultcallback)功能:执行用户登录,获取ST并通过IAuthResult返回给应用.
参数:activity:注意这里一定要传Activity实例的context,否则可能会出现类型转换错误;callback:完成请求后的返回值调用对象IAuthResult:登录结果会通过IAuthResult类返回给游戏.
游戏可以通过overrideonfinished()函数来取得登录结果数据注意:此接口必须主线程调用,接口里面已经启动线程,IAuthResult必须设置.
不要在回调函数中执行UI操作,如果需要操作UI,请发消息到主线程处理.
调用示例:privatevoidgetTokenByQuickLogin(){LenovoGameApi.
doAutoLogin(this,newLenovoGameApi.
IAuthResult(){@Override//登录回调,处理登录结果publicvoidonFinished(booleanret,Stringdata){if(ret){//登录成功}else{//登录失败(失败原因开启飞行模式、网络不通等)}}});}5.
3.
3帐号登录回调APIAPI:voidonFinished(booleanret,Stringdata)功能:登录接口、获取ST接口中的异步调用回调接口函数,认证结束会调用该接口函数.
参数:ret返回认证状态:true成功,false失败;data成功时为ST数据;失败时null调用示例:见LenovoGameApi.
doAutoLogin()5.
3.
4获取STAPI(不常用)API:LenovoGameApi.
getStData(Contextcontext,IAuthResultcallback)功能:一般情况下,登录成功后,ST会由回调接口返回,App不需要单独调用此接口.
如果游戏在其他时间需要使用ST,可以调用此接口再次获取.
19参数:context:注意这里一定要传Activity实例的context,否则可能会出现类型转换错误;callback:完成请求后的返回值调用对象IAuthResult:登录结果会通过IAuthResult类返回给游戏.
游戏可以通过overrideonfinished()函数来取得登录结果数据.
注意:此接口必须主线程调用,接口里面已经启动线程,IAuthResult必须设置.
不要在回调函数中执行UI操作,如果需要操作UI,请发消息到主线程处理.
调用示例:LenovoGameApi.
getStData(GameLauncherActivity.
this,newLenovoGameApi.
IAuthResult(){@OverridepublicvoidonFinished(booleanret,Stringdata){if(ret){//登录并且获取ST成功}else{//获取ST失败}});5.
3.
5支付和结果校验APIAPI:LenovoGameApi.
doPay(Activityactivity,Stringappkey,GamePayRequestrequest,IPayResultcallback)参数说明:设置参数的时候请注意参数字段的类型参数名称类型说明备注appkeyString应用密钥接入时从联想获取appidString(20)支付应用代码,长度为20位的字符串接入时从联想获取,本字段不能为空waresidint商品编码接入时商户自建notifyurlString交易结果同步回调地址可选字段.
如果客户端不设置,那么取服务端配置同步的地址ExordernoString外部订单号,长度小于50字节的字符串,本字段不能为空,且字段中不能有"&"或者"="字符.
外部订单号作为区分订单的标志,同时作为在线支付成功后,应用对支付结果签名的校验字段,关系到支付安全,20请务必定义priceint开放价格策略填真实兑换的金额(单位为分).
其他策略填0单位为分cpprivateinfoString商户私有信息.
最大长度128.
本字段不能为空,且字段中不能有"&"或者"="字符.
可选字段,商户私有信息在做交易结果同步的时候回传给开发者调用示例代码:GamePayRequestpayRequest=newGamePayRequest();//请填写商品自己的参数payRequest.
addParam("notifyurl",Config.
notifyurl);payRequest.
addParam("appid",Config.
appid);payRequest.
addParam("waresid",waresid);payRequest.
addParam("exorderno","sample"+System.
currentTimeMillis());payRequest.
addParam("price",price);payRequest.
addParam("cpprivateinfo","123456");LenovoGameApi.
doPay(GoodsListActivity.
this,Config.
appkey,payRequest,newIPayResult(){@OverridepublicvoidonPayResult(intresultCode,StringsignValue,StringresultInfo){//resultInfo=应用编号&商品编号&外部订单号if(LenovoGameApi.
PAY_SUCCESS==resultCode){Log.
e(Config.
TAG,"signValue="+signValue);if(null==signValue){//没有签名值,默认采用finish(),请根据需要修改Log.
e(Config.
TAG,"signValueisnull");Toast.
makeText(GoodsListActivity.
this,"sample:没有签名值",Toast.
LENGTH_SHORT).
show();}booleanflag=GamePayRequest.
isLegalSign(signValue,Config.
appkey);if(flag){Log.
e(Config.
TAG,"islegalsign:true");Toast.
makeText(GoodsListActivity.
this,"sample:支付成功",Toast.
LENGTH_SHORT).
show();//合法签名值,支付成功,请添加支付成功后的业务逻辑}else{Toast.
makeText(GoodsListActivity.
this,"sample:支付成功,但是验证签名失败",Toast.
LENGTH_SHORT).
show();//非法签名值,默认采用finish(),请根据需要修改}}elseif(LenovoGameApi.
PAY_CANCEL==resultCode){21Toast.
makeText(GoodsListActivity.
this,"sample:取消支付",Toast.
LENGTH_SHORT).
show();//取消支付处理,默认采用finish(),请根据需要修改Log.
e(Config.
TAG,"returncancel");}else{Toast.
makeText(GoodsListActivity.
this,"sample:支付失败",Toast.
LENGTH_SHORT).
show();//计费失败处理,默认采用finish(),请根据需要修改Log.
e(Config.
TAG,"returnError");}}});API:LenovoGameApi.
GamePayRequest.
isLegalSign(signValue,PayConfig.
appkey);功能:主要是对收银台返回结果进行签名验证,如果返回成功,则进行签名验证,如果签名验证成功,则为正常成功支付,继续添加支付成功之后的业务逻辑,否则签名验证失败,直接finish();支付结果通知说明:支付成功后,支付平台通过两种方式告知游戏支付结果1)客户端支付结果通知:在判断支付的结果是SDKApi.
PAY_SUCCESS之后,需要调用isLegalSign方法来验证支付结果的签名是否正确,只有了在这两个都验证通过情况下才能算支付成功.
2)服务端支付结果通知:您可以通过客户端参数notifyurl来设置支付结果通知地址,用户支付成功后,我们会将支付的相关信息同步到您设置的地址.
另外您也需要在联想商户服务后台配置一个缺省的地址.
缺省地址的设置方式,登录联想移动应用内计费平台(http://gmdev.
lenovomm.
com:6897/paywss/),选择应用后,修改应用信息,设置通知地址.
如果客户端也设置了notifyurl,以客户端的地址为准.
6.
混淆配置22如果您需要混淆apk,要在工程中proguard.
cfg文件内添加如下的混淆参数,避免联想网游SDK服务提供的类被混淆.
-dontwarnandroid.
net.
http.
**-keepclassandroid.
net.
http.
**{*;}-dontwarncom.
lenovo.
lps.
**-keepclasscom.
lenovo.
lps.
**{*;}-dontskipnonpubliclibraryclasses-optimizationpasses5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-optimizations!
code/simplification/arithmetic,!
field/*,!
class/merging/*-keeppublicclass*extendsandroid.
app.
Activity-keeppublicclass*extendsandroid.
app.
Application-keeppublicclass*extendsandroid.
app.
Service-keeppublicclass*extendsandroid.
content.
BroadcastReceiver-keeppublicclass*extendsandroid.
content.
ContentProvider-keeppublicclass*extendsandroid.
app.
backup.
BackupAgentHelper-keeppublicclass*extendsandroid.
preference.
Preference-keeppublicclass*extendsandroid.
support.
v4.
view.
ViewPager$OnPageChangeListener-keeppublicclass*extendsandroid.
support.
v4.
view.
PagerAdapter-keepclasseswithmembernamesclass*{native;}-keepclasseswithmembernamesclass*{public(android.
content.
Context,android.
util.
AttributeSet);}-keepclasseswithmembernamesclass*{public(android.
content.
Context,android.
util.
AttributeSet,int);}-keepclassmembersenum*{publicstatic**[]values();publicstatic**valueOf(java.
lang.
String);}-keepclass*implementsandroid.
os.
Parcelable{publicstaticfinalandroid.
os.
Parcelable$Creator*;}23-keepclasscom.
lenovo.
lsf.
lenovoid.
ui.
WebViewActivity$LenovoID{public;public;}-keepclasscom.
lenovo.
lsf.
lenovoid.
ui.
WebViewActivity$JsProcessClass{public;public;}#注意,这里需要替换为您的应用的包名-keeppublicclass[应用包名].
R$*{publicstaticfinalint*;}-keepattributes*Annotation*-keepattributesExceptions,InnerClasses-keeppublicclasscom.
alipay.
android.
app.
**{public;public;}-keeppublicclasscom.
tenpay.
android.
service.
**{public;public;}-keepclasscom.
unionpay.
upomp.
bypay.
**{*;}-keeppublicclasscom.
fastpay.
sdk.
activity.
**{*;}-keepclasscom.
payeco.
android.
plugin.
**{*;}-keepclasscom.
lenovo.
pay.
mobile.
iapppaysecservice.
payplugin.
merchant.
object.
**{*;}-keepclasscom.
lenovo.
pay.
mobile.
iapppaysecservice.
payplugin.
merchant.
parse.
**{*;}-keeppublicclasscom.
lenovo.
pay.
mobile.
iapppaysecservice.
utils.
DesProxy{native;}-keeppublicclasscom.
lenovo.
pay.
mobile.
iapppaysecservice.
.
activity.
views.
**{*;}-keeppublicclasscom.
lenovo.
pay.
mobile.
iapppaysecservice.
res2jar.
String_List{public;}-keeppublicclasscom.
lenovo.
pay.
mobile.
iapppaysecservice.
res2jar.
Id_List{public;}7.
接入注意事项241)接入关键检查点序号接入关键点备注1.
配置和使用正确的key值要在配置中正确使用realm,applicationtoken信息,在代码中正确使用支付的appid、appkey和waresid.
2调用初始化接口调用SDK初始化接口,初始化SDK运行环境3调用自动登录接口代码中调用快速登录接口完成用户登录,获得token.
4服务器验证Token把获取的登录token上传到自己的服务器,然后通过后台服务器之间的接口获取用户的UID来唯一的标识当前用户.
5支付用户点击购买时调用支付接口完成支付.
6混淆配置demo的混淆配置都要有(R包名换成自己的)7其他检查导出的apk请检查相关资源是否已打包进来(so文件、assets目录、res目录等等)2)独立包名需要给联想单独的游戏的包名(PN),请在包名后缀上加入.
lenovo字样8.
服务端验证LenovoIDToken(ST)1)接口描述接口编号API-63访问URLhttp://passport.
lenovo.
com/interserver/authen/1.
2/getaccountid通讯方式HTTPGET参数:lpsust:LPSuseraccountticket,用来标志用户身份的一个ticket,这个值请传入获取到的ST(Token)realm:服务安全域标识.
描述:根据客户端获取的lpsust以及获取该lpsust的realm来获取用户信息,具体信息参见对应的接口文档.
如果可以获取该用户信息,证明lpsust合法,并且是由该realm对应生成,如果不能获取该用户信息,则表明该lpsust不合法,或者realm不正确.
2)http示例http://passport.
lenovo.
com/interserver/authen/1.
2/getaccountidlpsust=ZAgAAAAAAAGE9MTAwMDM1NTA4MDMmYj0yJmM9NCZkPTExJmU9RTZGM0EzMTY5RjAwQTM2QzE4MzNERDM4QzhCQkU0QzkxJmg9MTM3MjkxMDg2NDI3NSZpPTQzMjAwJm89MDAwMDAwMDAwMDAwMDAwJnA9aW1laS25ZxPTExMTExMSZ1c2VybmFtZT0xMzgxMDUzNTg4N6z979s5fL06DibrT5d7D6s=&realm=appstore.
lps.
lenovo.
com3)用户信息Schema以下是使用XSD(xmlschemadefinition)描述的接口返回用户信息的xml结构.
实际返回的XML信息见后面的示例.
用户信息对于用户帐号,该字段为用户ID.
对于PID帐号,该字段为PID值.
用户名(可选项)登录所用设备ID(可选项)帐户是否已激活.
0:未激活,1:已激活.
263rdpartyIDP'sname.
seesection"CommonDataFormat"实际返回的用户信息XML示例:100035508031381053588712314)错误信息Schema以下是使用XSD(xmlschemadefinition)描述的接口返回错误信息的xml格式结构.
实际返回的XML信息见后面的示例.
错误信息错误码27错误信息错误详细信息错误源错误描述相关URL28返回错误信息XML示例:USS-01212014-07-01T17:51:49+08:005)错误码错误码(Code)描述USS-0100无效的用户名,需要检查用户名格式是否正确.
USS-0101口令错误.
USS-0103无此用户,请检查用户名是否正确USS-0104用户名已存在,不允许重复注册USS-0105帐号必须激活后才能登录USS-0108该用户已激活,请勿重复操作.
USS-0110无效的IMEI,SN或MACUSS-0111帐号已被disableUSS-0113口令类型错误USS-0121无效的realmUSS-0122此服务不支持该realmUSS-0126Ticket值解析失败.
USS-0135无效的请求数据USS-0151账号已锁定USS-0160需要使用验证码(在申请帐号时,如果服务端检测到异常行为,会返回该错误给客户端,客户端需要使用图形验证码)USS-0170密码格式错误.
(密码的限制规则是:4~20位字符,包括英文大小写字母、英文数字、减号和下划线)USS-0181校验码错误或失效,针对手机账号对账号校验时可能产生USS-0190(针对短信注册,服务端不支持该运营商的号码.
)尚未开通,请尝试其他方式注册.
USS-0540无效的lpsustUSS-0542未提供lpsust信息USS-0202用户登录已失效USS-0x0000后台快捷登录使用次数达到10次USS-0x0001后台快捷登录失败USS-0x0002后台快捷登录检测到未安装联想通行证9.
服务端支付通知接口29本接口用于交易完成之后,联想支付平台主动向商户服务端发起交易结果同步.
1)接口URL如果您在联想商户服务后台设置了"支付通知地址",同时客户端也设置了notifyurl,客户端的设置地址有效,页面设置的地址失效,结果将通知到notifyurl地址.
2)接口参数接口均采用http协议,POST方法.
POST参数为transdata、sign.
transdata为本次支付的具体业务参数,数据格式为json格式;sign为transdata的签名数据.
具体呈现方式为transdata=xxxx&sign=yyyy,其中yyyy就是对xxxx的签名数据.
3)应答与签名商户收到平台数据后,需要使用当前应用的appkey来验证签名.
如果验证签名失败,返回FAILURE,通过则给支付平台返回SUCCESS应答.
4)交易结果通知的重发平台在没有收到商户应答的情况下,会定时重发.
但是重发一定次数后,将不再进行重发.
5)验签方式本方法用于支付结果通知的验证签名.
收到平台的通知后,解析出transdata和sign后,请使用validSign方法验证签名是否通过.
如果不通过,请勿进行其它操作,避免损失.
验证签名的方法见服务端接入示例代码.
验证签名的方法函数原型:/****@paramtransdata同步过来的transdata数据*@paramsign同步过来的sign数据*@paramkey支付私钥(也即是appkey,可从商户自服务系统获取).
*@return验证签名结果true:验证通过false:验证失败*/publicstaticBooleanvalidSign(Stringtransdata,Stringsign,Stringkey)调用方法:CpTransSyncSignValid.
validSign(transdata,sign,key);同步数据示例同步数据具体呈现方式(http包体数据):transdata={"exorderno":"1","transid":"2","appid":"3","waresid":31,"feetype":4,"money":5,"count":6,"result":0,"transtype":0,"transtime":"2012-12-1212:11:10","cpprivate":"7","paytype":1}&sign=d91cbc584316b9d99919921a930同步数据参数详情解参数名称参数含义数据类型参数长度参数说明exorderno外部订单号StringMax(50)商户生成的订单号transid交易流水号StringMax(32)计费支付平台的交易流水号appid游戏支付appidStringMax(20)支付appid(应用代码)waresid商品编码integerMax(8)商品编号,目前默认1feetype计费方式integerMax(3)计费类型:0–消费型_应用传入价格money交易金额integerMax(10)本次交易的金额,单位:分count购买数量integerMax(10)本次购买的商品数量result交易结果integerMax(2)交易结果:0–交易成功;1–交易失败transtype交易类型integerMax(2)交易类型:0–交易;1–冲正transtime交易时间StringMax(20)交易时间格式:yyyy-mm-ddhh24:mi:sscpprivate商户私有信息StringMax(128)商户私有信息paytype支付方式IntegerMax(2)支付方式(该字段值后续可能会增加)0-话费支付1-充值卡2-游戏点卡3-银行卡401-支付宝402-财付通5-联想币6-联想一键支付
华为云怎么样?华为云用在线的方式将华为30多年在ICT基础设施领域的技术积累和产品解决方案开放给客户,致力于提供稳定可靠、安全可信、可持续创新的云服务,做智能世界的“黑土地”,推进实现“用得起、用得好、用得放心”的普惠AI。华为云作为底座,为华为全栈全场景AI战略提供强大的算力平台和更易用的开发平台。本次年终聚惠618活动相当给力,1核2G内存1m云耀云服务器仅88元/年起,送主机安全基础版套餐,...
Cloudxtiny是一家来自英国的主机商,提供VPS和独立服务器租用,在英国肯特自营数据中心,自己的硬件和网络(AS207059)。商家VPS主机基于KVM架构,开设在英国肯特机房,为了庆祝2021年欧洲杯决赛英格兰对意大利,商家为全场VPS主机提供50%的折扣直到7月31日,优惠后最低套餐每月1.5英镑起。我们对这场比赛有点偏见,但希望这是一场史诗般的决赛!下面列出几款主机套餐配置信息。CPU...
VPSDime是2013年成立的国外VPS主机商,以大内存闻名业界,主营基于OpenVZ和KVM虚拟化的Linux套餐,大内存、10Gbps大带宽、大硬盘,有美国西雅图、达拉斯、新泽西、英国、荷兰机房可选。在上个月搞了一款达拉斯Linux系统VPS促销,详情查看:VPSDime夏季促销:美国达拉斯VPS/2G内存/2核/20gSSD/1T流量/$20/年,此次推出一款Windows VPS,依然是...
联想t16为你推荐
今日油条天天吃油条,身体会怎么样硬盘的工作原理简述下硬盘的工作原理?云计算什么叫做“云计算”?蓝色骨头手机谁有崔健执导的电影《蓝色的骨头》。嘉兴商标注册嘉兴那里有设计商标的5xoy.com求个如月群真汉化版下载地址www.544qq.COM跪求:天时达T092怎么下载QQwww.bbb551.com100bbb网站怎样上不去了m88.comm88.com现在的官方网址是哪个啊 ?m88.com分析软件?广告法有那些广告法?还有广告那些广告词?
域名备案中心 老鹰主机 cloudstack 外国空间 dropbox网盘 150邮箱 老左来了 服务器是干什么的 域名dns 联通网站 阿里云免费邮箱 西安主机 免费个人主页 国外免费网盘 websitepanel linux命令vi 国内云主机 大容量存储方案 大容量存储控制器驱动 web服务器配置 更多