支付联想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-联想一键支付

CheapWindowsVPS:7个机房可选全场5折,1Gbps不限流量每月4.5美元

CheapWindowsVPS是一家成立于2007年的老牌国外主机商,顾名思义,一个提供便宜的Windows系统VPS主机(同样也支持安装Linux系列的哈)的商家,可选数据中心包括美国洛杉矶、达拉斯、芝加哥、纽约、英国伦敦、法国、新加坡等等,目前商家针对VPS主机推出5折优惠码,优惠后最低4GB内存套餐月付仅4.5美元。下面列出几款VPS主机配置信息。CPU:2cores内存:4GB硬盘:60G...

wordpress外贸集团企业主题 wordpress高级推广外贸主题

wordpress外贸集团企业主题,wordpress通用跨屏外贸企业响应式布局设计,内置更完善的外贸企业网站优化推广功能,完善的企业产品营销展示 + 高效后台自定义设置。wordpress高级推广外贸主题,采用标准的HTML5+CSS3语言开发,兼容当下的各种主流浏览器,根据用户行为以及设备环境(系统平台、屏幕尺寸、屏幕定向等)进行自适应显示; 完美实现一套主题程序支持全部终端设备,保证网站在各...

Sharktech($49/月),10G端口 32GB内存,鲨鱼机房新用户赠送$50

Sharktech 鲨鱼机房商家我们是不是算比较熟悉的,因为有很多的服务商渠道的高防服务器都是拿他们家的机器然后部署高防VPS主机的,不过这几年Sharktech商家有自己直接销售云服务器产品,比如看到有新增公有云主机有促销活动,一般有人可能买回去自己搭建虚拟主机拆分销售的,有的也是自用的。有看到不少网友在分享到鲨鱼机房商家促销活动期间,有赠送开通公有云主机$50,可以购买最低配置的,$49/月的...

联想t16为你推荐
微信回应封杀钉钉微信大封杀什么时候结束地图应用看卫星地图哪个手机软件最好。嘉兴商标注册怎么查商标注册日期丑福晋谁有好看的言情小说介绍下www.522av.com我的IE浏览器一打开就是这个网站http://www.522dh.com/?mu怎么改成百度啊 怎么用注册表改啊5xoy.comhttp://www.5yau.com (舞与伦比),以前是这个地址,后来更新了,很长时间没玩了,谁知道现在的地址? 谢谢,杨丽晓博客杨丽晓哪一年出生的?www.hyyan.comdota屠夫怎么玩?从初期到后期的装备是什么?javlibrary.comImage Library Sell Photos Digital Photos Photo Sharing Photo Restoration Digital Photos Photo Albums5566.com请问如何创建网页(就是www.5566.com.cn这种格式的)
老域名全部失效请记好新域名 lamp安装 yardvps ix主机 紫田 debian7 mysql主机 免费网站申请 免费个人空间申请 中国电信测速112 美国在线代理服务器 个人免费主页 starry 镇江高防 北京主机托管 石家庄服务器 accountsuspended winds 优惠服务器 时间同步服务器 更多