token串用户token已过期期

用strtoken函数识别以“\0”分割的字符串【编程语言】,专业承接网页前端工作室,专业承接网页切图排版|html页面制作|jpg或psd转html,网页切图制作
时间: 来源:
用strtoken函数识别以“\0”分割的字符串
【编程语言】
点击次数:967
其它web前端开发资讯
web前端行业资讯Web new NewsList
我们保证We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)
一些合作过的客户原油, 积分 32, 距离下一级还需 18 积分
原油, 积分 32, 距离下一级还需 18 积分
原油, 积分 32, 距离下一级还需 18 积分
主题 : 1|帖子 : 14|积分 : 32
您的心情我十分理解,也不要太难过啦,近期关注下游戏开发商有没有进一步更新哈~ ...
游戏按登录的时候出现token过期&&我想问问是不是登录太频繁才会这个
主题 : 0|帖子 : 35374|积分 : 20039
游戏按登录的时候出现token过期&&我想问问是不是登录太频繁才会这个
这个情况我还没有遇到过,您可以联系游戏开发人员咨询下哦~
原油, 积分 32, 距离下一级还需 18 积分
原油, 积分 32, 距离下一级还需 18 积分
原油, 积分 32, 距离下一级还需 18 积分
主题 : 1|帖子 : 14|积分 : 32
这个情况我还没有遇到过,您可以联系游戏开发人员咨询下哦~
好的&&谢谢
主题 : 0|帖子 : 35374|积分 : 20039
好的&&谢谢
不客气的,麻烦您了~
润滑油, 积分 1662, 距离下一级还需 338 积分
润滑油, 积分 1662, 距离下一级还需 338 积分
润滑油, 积分 1662, 距离下一级还需 338 积分
主题 : 6|帖子 : 242|积分 : 1662
楼主问题解决了吗?我也是遇到这个问题了。
原油, 积分 32, 距离下一级还需 18 积分
原油, 积分 32, 距离下一级还需 18 积分
原油, 积分 32, 距离下一级还需 18 积分
主题 : 1|帖子 : 14|积分 : 32
崔生伟 发表于
楼主问题解决了吗?我也是遇到这个问题了。
并没有解决问题&&我已经卸游戏了
---来自一加社区手机客户端
原油, 积分 46, 距离下一级还需 4 积分
原油, 积分 46, 距离下一级还需 4 积分
原油, 积分 46, 距离下一级还需 4 积分
主题 : 0|帖子 : 19|积分 : 46
我也有这个问题,玩自由之战的号用一加商店更新之后就再也登录不了了,一直说token串已过期
润滑油, 积分 1565, 距离下一级还需 435 积分
润滑油, 积分 1565, 距离下一级还需 435 积分
润滑油, 积分 1565, 距离下一级还需 435 积分
主题 : 12|帖子 : 419|积分 : 1565
朋友,你好,你的问题解决了吗?
润滑油, 积分 1565, 距离下一级还需 435 积分
润滑油, 积分 1565, 距离下一级还需 435 积分
润滑油, 积分 1565, 距离下一级还需 435 积分
主题 : 12|帖子 : 419|积分 : 1565
lii007 发表于
我也有这个问题,玩自由之战的号用一加商店更新之后就再也登录不了了,一直说token串已过期 ...
呵呵,好,原来是一加的问题啊
润滑油, 积分 1565, 距离下一级还需 435 积分
润滑油, 积分 1565, 距离下一级还需 435 积分
润滑油, 积分 1565, 距离下一级还需 435 积分
主题 : 12|帖子 : 419|积分 : 1565
一加服务-紫檀香 发表于
这个情况我还没有遇到过,您可以联系游戏开发人员咨询下哦~
这是你们刷机包的问题啦,是氢包滴问题,我实在是很想刷回color版本,只是不知道这氢包权限怎么破,好像破不了,坑啊
元旦纪念勋章
马年纪念勋章 马上啥都有
圣诞节祝福勋章
在线小达人
社区上线100天纪念勋章
一加手机1勋章
& 2015 深圳市万普拉斯科技有限公司 版权所有 (技术文档 | 小米应用开发者文档 | Page 10
Publishing Workflow (For mobile and tablet version)
MUST-READ: please download a practical guide with illustrations to walk you through the whole process using Xiaomi Developer Console here: from registration to successful release with helpful tips. SPECIAL NOTE :
Package name of game(Suffix rules: .mi for mobile phone games, .mipad for Mipad, .mitv for TV )
The following two permissions must be added to AndroidManifest.xml for any new game or any updates of game released before uploading new APK to the Developer Console :
&uses-permission android:name=”android.permission.GET_TASKS” /&
&uses-permission android:name=”com.xiaomi.sdk.permission.PAYMENT” /&
Download Xiaomi Game Service app
(apk + jar).
SHA1: 2bb8cdd3952613dde347f
Please carefully read the and
we provide, and take a test on a Xiaomi device, if possible, or at least any devices running MIUI system.
Please find out more specific suggestions for SDK Integration:
An Overview
Simply put, the basic steps are as follows:
Register with Xiaomi
To get started, please register a Xiaomi account or a developer’s account at
Add a Game
Add a game to your Developer console. When you fill in package name of the game, please make sure to use the correct suffixes to make it available for different devices.
.mi for mobile phone, .mipad for Mipad and .mitv for TV and Mibox .mi for both phone and pad
Get Appid and APPkey online
Please login to Developer Console to get APPid, APPkey and APPSecret.
Configure and Manage In-app products online
You can set up and administer your in-app products in Xiaomi Developer Console, including defining information such as the item’s unique product ID, product type, pricing, description,and
callback address etc.
Get Xiaomi SDK
Xiaomi SDK serves two purposes:
Xiaomi Account login (Xiaomi account gives the user access to all Xiaomi services.)
In-app billing components (Xiaomi SDK supports almost all well-accepted payment methods in China, including credit card or debit card, top-up or prepaid card, SMS payment of three major Chinese Carriers: China Telecom, China Mobile and China Unicom, and other third party payment gateways like Alipay and Tenpay)
Integrate Xiaomi SDK
Before sending release-ready apk to us, please make sure that you have finished testing your game in a debug environment for functionality, performance and stability.
Get Approval
Please upload release-ready apk with two more permissions added(please refer to the document “Publishing Workflow” above) and promotional materials to your Developer console and wait for approval at least two days before scheduled release.
Please inform us of the date you would like to release your game, we will publicize the release version of the game on the agreed date.
Updates or Changes
If you would like to update or change your released version, please upload directly to your admin console. Should you need any support, please contact us at overseas-.
This entry was posted in
1. In-app Billing Overview
This documentation describes the fundamental In-app Billing components and features that you need to understand in order to add In-app Billing features into your application.
1.1. In-app Billing
Your application accesses the In-app Billing service using an API that is exposed by the Xiaomi Game Service app that is installed on the device. The Xiaomi Game Service app then conveys billing requests and responses between your application and the Xiaomi Game Billing server. In practice, your application never directly communicates with the Xiaomi Game Billing server. Your application does not manage any network connections between itself and the Google Play server.
In-app Billing can be implemented only in applications that you publish through Xiaomi Mobile Market. To complete in-app purchase requests, the Xiaomi Game Service app must be able to access the Xiaomi Game Billing server over the network.
1.2.Quick start
It is highly recommended you to install the Xiaomi_GameCenter_SDK_Demo.apk, and the demo also open source , you can download source here, this demo can run on any android based phones.
1.3.In-app products
In-app products are the digital goods that you offer for sale from inside your application to users. Examples of digital goods include in-game currency, application feature upgrades that enhance the user experience, and new content for your application.
You can use In-app Billing to sell only digital content. You cannot use In-app Billing to sell physical goods, personal services, or anything that requires physical delivery. Unlike with priced applications, once the user has purchased an in-app product there is no refund window.
Xiaomi Game Service does not provide any form of content delivery. You are responsible for delivering the digital content that you sell in your applications. In-app products are always explicitly associated with one and only one app. That is, one application cannot purchase an in-app product published for another app, even if they are from the same developer.
Product types
In-app Billing supports different product types to give you flexibility in how you monetize your application. In all cases, you define your products using the .
You can specify these types of products for your In-app Billing application — managed in-app products. Xiaomi handles and tracks ownership for in-app products on your application on a per user account basis.
2.Consuming In-app Products
We provide two types of in-app products, Non-consumable items and Consumable items.
Non-consumable Items
Typically, you would not implement consumption for in-app products that can only be purchased once in your application and provide a permanent benefit. Once purchased, these items will be permanently associated to the user’s Xiaomi account. An example of a non-consumable in-app product is a premium upgrade or a level pack.
Consumable items
In contrast, you can implement consumption for items that can be made available for purchase multiple times. Typically, these items provide certain temporary effects. For example, the user’s in-game character might gain life points or gain extra gold coins in their inventory. Dispensing the benefits or effects of the purchased item in your application is called provisioning the in-app product. You are responsible for controlling and tracking how in-app products are provisioned to the users.
Managing consumable purchases in your application
Please obtain AppId and AppKey first, then invoke the following SDK initialization code to initialize the operation.Right now you can send email to overseas-game, we can help you to submit AppId , AppKey and SecureKey.
Put MiGameCenterSDKService.apk of SDK package into the ‘assets’ directory of project, and SDK’s jar the ‘libs’, referenced in buildpath, then initialize SDK.(Note: Check whether the package name of the game
is the same with the package name of xiaomi server configuration, whether the Appid and Appkey are consistent with the applied. If not consistent, it would be failed when invoking login and other SDK interfaces.).
2 Initialization
Please invoke the following initialization method in Application.onCreate.
MiAppInfo appInfo = new MiAppInfo();
appInfo.setAppId(“Developer applied”);
//get from
appInfo.setAppKey(“Developer applied”);
//get from
appInfo.setAppType(MiGameType.offline); // don’t need to change
MiCommplatform.Init( this, appInfo );
The permission that SDK needs to add:
&uses-permission android:name=”android.permission.GET_TASKS” /&
3 Invoke payment
3.1 Consumable production
MiBuyInfoOffline offline = new MiBuyInfoOffline();
offline.setCpOrderId( UUID.randomUUID ().toString() );//unique order ID(not null)
offline.setProductCode( "productCode" );//Product Code, applied by developers(not null)
offline.setCount( 1 );//purchased quantity(max9999,min1)(not null)
MiCommplatform.getInstance ().miUniPayOffline( activiy, offline,
new OnPayProcessListener(){
public void finishPayProcess( int code ) {
switch( code ) {
case MiErrorCode.MI_XIAOMI_GAMECENTER_SUCCESS:
//purchased successfully, please process delivering
case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_PAY_CANCEL:
//purchase cancelled
case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_PAY_FAILURE:
//purchase failed
case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_ACTION_EXECUTED:
//purchase processing,please wait..
//purchase failed
3.2 Non-consumable production
MiBuyInfoOffline offline = new MiBuyInfoOffline();
offline.setCpOrderId( UUID.randomUUID ().toString() );//unique order ID(not null)
offline.setProductCode( “productCode ” );//Product Code, applied by developers(not null)
offline.setCount( 1 );//purchased quantity(only can be 1)(not null)
MiCommplatform.getInstance().miUniPayOffline(activiy, offline,
new OnPayProcessListener(){
public void finishPayProcess( int code ) {
switch( code ) {
case MiErrorCode.MI_XIAOMI_GAMECENTER_SUCCESS:
//purchased successfully, please process delivering
case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_PAY_CANCEL:
//purchase cancelled
case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_PAY_FAILURE:
//purchase failed
case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_PAY_REPEAT:
//already purchased, no need to purchase again, use directly
case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_ACTION_EXECUTED:
//processing , please wait..
//purchase failed
Parameter Description:
Parameter name
Description
Developer’s order ID
20~100 characters, generated by developers,uniquely, can be auto generated based on developer rules.
productCode
Product code
Rules:Composed of 0-9,a-zA-Z and ”_”,”.”,”-”, 8~40characters, uniquely within one game, case sensitive. Recommendation: com.xiaomi.game1.toolxxx.Please do not confuse the productCode of non-consumable production and consumable production when invoking
Quantity of products
Non-consumable product: count=1
Consumable product: count&=1
3.3 Xiaomi account login
If your game uses Xiaomi ID as user identifier (such as Google Play Account picker), please call following api.
MiCommplatform.getInstance().miLogin( context, new OnLoginProcessListener(){
public void finishLoginProcess( int code , MiAccountInfo arg1 ) {
switch( code ) {
case MiErrorCode.MI_XIAOMI_GAMECENTER_SUCCESS:
//Login successful
//Get user ID, please use this uid to identify user.
String uid = arg1.getUid();
case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_LOGIN_FAIL:
//Login failed
case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_CANCEL :
//Login canceled
case MiErrorCode.MI_XIAOMI_GAMECENTER_ERROR_ACTION_EXECUTED:
//Login is in progressing
//Login failed
You can get user ID from arg1.getUid(), this ID is kind of open id alias for Xiaomi ID, you can use this ID identified game players.
3.4 Server-side interface
Optionally, we provide the notification address of receiving order payment result if you provide sync url.
3.4.1.Order notification interface
This interface is developed by developer and should be configured in xiaomi server before releasing.You can email to overseas- to add or change.
After successful payment of the order, Xiaomi server will notify the developer’s server provided in advance with the payment result. If the developer’s server cannot be accessed, within a certain period of time, Xiaomi server would do the checking cycle.
Specific procedures are as follows:
Note: Due to the asynchronous notification model,(3) and (4) may not follow the sequence, so (4) and
(5) need to be checked cyclically, or use the interface to query the payment result.
3.4.2 Interface and Parameters Description:
Interface address: each developer’s server’s notification address(Applied in advance, configured in Xiaomi server database)
Request Parameter Description:
Parameter name
Description
Developer’s order ID
cpUserInfo
Developer information
Game center order ID
orderStatus
Order statusTRADE_SUCCESS means success
Payment amount, the unit is cent, which is 0.01Mi.
productCode
Product code
productName
Product name
productCount
Product quantity
Payment time, format:
yyyy-MM-dd HH:mm:ss
orderConsumeType
Order type:
10: Common order
11: Direct charge and consumable order
Signature.
Signature method description is in below.
Response Parameter Description:
Parameter name
Description
Status code:200
success1506
cpOrderId error1515
appId error1516
uid error1525
signature error
error message
Note: For the same cpOrderId , we may notify developers’ server more than once, developers must guarantee that product be delivered only once.
Interface Format Description:
Request mode: HTTP GET
Input parameters:
?parameter1=value1&parameter2=value2&…& parameterN=valueN, values required to do UrlEncode under the circumstances.
Response parameters: use json format, for example:{“Response parameters1”:”Response value1”,“Response parameters2”:”Response value2”,…“Response parametersN”:”Response valueN”}
Generate the string with signature
All parameters in the table are in alphabetical sequence(Excluding signature), if the first letters are same, then sort by the second letters, and so on. The generated string, which needs to be signed, is in the format like this: par1=val1&par2=val2&par3=val3. The parameter with no value will not be involved in the signature. Because some data are based on the HTTP protocol, the receiver needs URLencoding to get the right parameter, but if this parameter is involved in the signature, the
generated string, which needs to be signed, must be the original value, not the
URLencoding value.
Signature Algorithm
Use appKey as key, and the hash algorithm of hmac-sha1 with secret to make the signature calculation of the
generated string. The result is showed in hexadecimal.
About the hash algorithm of hmac-sha1 with secret, please refer to appendix.
3.1.APK packaged and publish
Note: SDK package is provided to developers in jar package, which is already in code obfuscation status, please add the following codes to your own ‘proguard.cfg’ to avoid a second code obfuscation when you obfuscate your own APK package.
-keep public classcom.xiaomi.gamecenter.sdk.ui.actlayout.ViewAliPayWeb$PayObject{*;}-keepclasseswithmembers class * {public &init&(…);}-keepclassmembers enum * {public static **[] values();public static ** valueOf(java.lang.String);}-keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *;}
3.2.Server signature method
Hmac-SHA1 algorithm in java:
import javax.crypto.M
import javax.crypto.SecretK
import javax.crypto.spec.SecretKeyS
????public class HmacSHA1Encryption {
private static final String MAC_NAME = "HmacSHA1" ;
private static final String ENCODING = "UTF-8";
* Use HMAC-SHA1 signature method to sign the encryptText
* @param encryptText
The signed string
* @param encryptKey
Secret key
* @return Return the encrypted string
* @throws Exception
public static String HmacSHA1Encrypt( String encryptText, String encryptKey ) throws Exception{
byte[] data = encryptKey.getBytes( ENCODING );
// According to the given byte array to construct a key, the second parameter specifies the name of a key algorithm
SecretKey secretKey = new SecretKeySpec( data, MAC_NAME );
// Generate a Mac instance of a specified Mac algorithm
Mac mac = Mac.getInstance ( MAC_NAME );
// Initialize the Mac instance with the given key
mac.init( secretKey );
byte[] text = encryptText.getBytes( ENCODING );
byte[] digest = mac.doFinal( text );
StringBuilder sBuilder = bytesToHexString ( digest );
return sBuilder.toString();
* Change to Hex
* @param bytesArray
public static StringBuilder bytesToHexString( byte[] bytesArray ){
if ( bytesArray == null ){
StringBuilder sBuilder = new StringBuilder();
for ( byte b : bytesArray ){
String hv = String.format("%02x", b);
sBuilder.append( hv );
* Use HMAC-SHA1 signature method to sign the encryptText
* @param encryptData The signed string
* @param encryptKey Secret key
* @return Return the encrypted string
* @throws Exception
public static String HmacSHA1Encrypt( byte[] encryptData, String encryptKey ) throws Exception{
byte[] data = encryptKey.getBytes( ENCODING );
SecretKey secretKey = new SecretKeySpec( data, MAC_NAME );
Mac mac = Mac.getInstance ( MAC_NAME );
mac.init( secretKey );
byte[] digest = mac.doFinal( encryptData );
StringBuilder sBuilder = bytesToHexString ( digest );
return sBuilder.toString();
3.3.Error Code
AppId error
Recharge type error
Product not exist or already removed
System error
Recharge order number error
MiCredit amount error
Database error
Channel number error
Void signature
Authentication failed
Cache error
Account status error
Paging query Max ID
Get MiCredit account error
Http request error
Product id error
Each page record number
Order create error
Repeat Request
Session error
Payment time error
Card payment invoke error
Json Parse error
number error
Pages Number when paging
Order processing
RSA signature public key or private key error
Product price error
Order request time error
Order processing timeout
No request parameter
Purchased quantity error
Removed applications
Order processing failed, unknown reason
IP Authentication Error
No signature parameter
Insufficient money
Order not exist
Message number error
Verify signature error
Repeat transaction
Order paid
Network Element error
ApkName error
Signature error
Input parameter miBi error
Mi id error
ApkSign error
Repeat recharge
Order already exists
CP order number error
SdkVersionCode error
Recharge order not exist
AuthToken expired
Order Amount Error
Card value error
Recharge order status not exist
AuthToken illegal
Payment Error
CpUserInfo error
Business system public key not exist
ServiceToken expired
Order id error
Collate start time error
Charging system private key not exist
Get serviceToken failed
Payment order id error
Collate end time error
Network element not exist
Verify serviceToken failed
Payment result error
Parameter p error
Cancellation failure
Payment amount error
Order description error
Upload games that users played failed
CP ID error
Recharge amount error
Modify user information error
This entry was posted in
MIUI for Pad 为 7 英寸或更大尺寸平板电脑设计,针对性的优化了产品的交互和设计体验。我们通过这篇文档,介绍我们设计 MIUI for Pad 的理念和方法,并对三方 App 设计提供建议。
关于读者:
本文档面向的读者是有一定移动产品设计经验的 PM ,着重介绍 Pad 类设备的特性,以及和手机产品设计的不同之处,通过 MIUI for Pad 的设计案例帮助三方开发者改进自己的Pad版应用。
如果您并没有从事过移动产品设计,建议您先阅读 Google 官方的 Android Design 设计文档和 iOS Human Interface Guideline,本文档在撰写时也参考了它们。
尊重 Android Design
MIUI 是 Android 生态圈的一部分,如果您的设计是符合 Android Design 设计方法的,在 MIUI for Pad 上表现也会很棒!
推荐阅读:
用户如何使用 Pad 类产品
主要典型场景:
下班回到家,窝在沙发上,拿着Pad看电影、刷微博、玩游戏。
会议室里面,把 Pad 放在桌上做会议记录、演示 PPT、做快速的方案交流。
外出游玩,用 Pad 查看地图、处理照片并分享。
Pad 的硬件特性:
更大的屏幕,可以展示更多的内容,交互空间更大,可以处理复杂的任务。
更强大的计算能力和续航时间,可以完成复杂的运算,并支持长时间的使用。
尺寸、重量比手机大,使用者更倾向于在一个稳定的状态下使用,比如坐着或着站定。
小米 Pad 屏幕配置参数
屏幕分辨率:(请注意比例是 4:3)
屏幕尺寸:7.9 英寸
像素密度:320dpi(xhdpi)
交互设计建议
因为 Pad 设备的硬件形态设计是双轴对称的,当用户启动您的应用时,会希望无需旋转设备就可以使用,因此强烈建议您的应用支持四方向布局,您也可以利用横屏/竖屏合理的展示不同的内容,满足用户的需求
同时,我们也建议在 App 启动时先检查设备方向,并按照设备的方向正确展示您的应用。保证启动的时候您的 App 是在正确方向的。
如果您的应用仅支持横屏或者竖屏,也建议您支持在2 个方向(垂直/水平)上布局。
在用户旋转屏幕的时候,您可能需要对应用进行重新布局,Android Design 中提到 Android 原生支持 4 种重新布局方式:Stretch/compress、Stack、Expand/collapse、Show/hide。从我们的实践看,建议您考虑采用 Stretch/compress 和 Show/hide 两种方式,尽量减少旋转时结构的变化,可以让应用有更好的一致性,避免用户旋转后迷失。
用户在使用 Pad 设备时,通常是双手左右握持,或者一手握持另一手点击,因此如果您的应用设计中存在弹窗操作,应该出现在屏幕中央,以方便用户点击。
两种常见的结构模型
Pad 的大屏幕让设计师有了更多发挥的空间,您可以利用这块屏幕做很多事情。
这里介绍两个比较常用的布局方式,也是 MIUI 系统应用设计中用到的。
导航-内容( Tab 导航结构)
索引-内容(两栏式结构)
小米应用商店:导航-内容( Tab 导航结构)
Tab 导航式结构是一种经典的布局方式,适合内容运营驱动的商店类产品。
导航栏放置在页面顶端,Tab 居左,支持横划切换,符合 Android 交互习惯。
我们建议最多不超过 5 个 Tab ,过多的 Tab 会导致产品更复杂,布局拥挤,用户也难以识别和点击。
在方向旋转时,不应该增加或减少 Tab 的数量。保持产品的一致性。
导航栏最右侧建议放置全局操作,在多级浏览的情况下仍然可以快速使用。
二级页面的 Tab 位于顶栏居中位置,仍然支持横滑切换。如下图
MIUI 文件管理器:索引-内容(两栏式结构)
两栏式结构分为左、右两栏,属于父子结构,左侧是内容索引(父级),右侧是具体内容展示(子级),我们在便签,联系人,设置、文件管理器中采用了这个结构。
左栏应采用固定尺寸,无论横屏/竖屏,都保持同一个宽度,这样有助于保持界面稳定,如果采用 Google 的 Stretch/compress 方式设计,Google 会做宽度的同比缩放,也是一种可接受的设计。
左栏宽度应该小于右栏,如果左栏尺寸过大,会给用户父子结构颠倒的错觉,影响体验。
左栏的操作可以控制右栏的展示内容,比如在文件管理器左栏选一个类型,右栏就展示出来。但是右栏不应该能控制左栏的展示。
尽量避免在左栏和右栏同时出现层级导航,可能会让用户迷失位置。
如果您有任何问题,可以随时联系我们的PAD适配专员。
This entry was posted in
详细描述及解决办法
属于正常状态
联系小米SDK开发人员解决
数据库错误
联系小米SDK开发人员解决
缓存处理错误
联系小米SDK开发人员解决
http请求错误
联系小米SDK开发人员解决
json解析错误
检查是否是正确的json格式
RSA签名错误
检查RSA算法是否正确
查询结果为空
查询结果为空,属于正常情况
AES解密错误
检查AES加密方法是否正确
风险控制非法请求
风险控制非法请求
未输入请求参数
检查要求的参数是否都输入
IP鉴权错误
消息号错误
小米id错误
cp订单号错误
检查CpOrderId参数是否为空
订单金额错误
支付方式错误
订单id错误
请求的订单号不存在
支付订单id错误
支付结果错误
支付金额错误
单类型错误
CP编号错误
输入的CpOrderId参数为空
AppId为空或应用不存在或已下线(对于新接入的应用,需要先配置应用内支付,再测试SDK登录)
内部用户编号错误(uid错误)
uid参数为空
渠道号错误
渠道参数为空
账户状态错误
产品id错误
session错误
session参数为空或不存在
手机号码错误
产品单价错误
购买数量错误
商品购买数量错误
没有signature参数
验证signature错误
signature签名错误,请检查签名计算方法是否正确
apkName错误
应用的包名错误,检查AppId、包名与开发者站配置的是否一致
apkSign错误
sdkVersionCode错误
卡面值错误
cpUserInfo错误,透传参数
透传参数超长,不要大于100个字符
对账开始时间错误
对账结束时间错误
订单描述信息错误
充值金额错误
充值类型错误
充值订单号错误
分页查询最大id
每页记录条数错误
支付时间错误
分页时多少页
订单请求时间错误
已下线的应用
应用的包名错误,检查AppId、包名与开发者站配置的是否一致
未配置计费信息
请到开发者站配置计费信息
交易订单已过期
该商品已购买
手机充值卡错误
用户ID不匹配
账号被冻结
米币卡充值失败
小米内部回调地址错误
礼券调用异常
银行卡好错误
没有对应银行卡信息
米币调用错误
充值订单不存在
充值订单状态不存在
业务系统公钥不存在
计费系统私钥不存在
网元不存在
存储用户银行卡信息出错
短信对应的PAYID错误
费订单不是直充直销
充值订单不是只充值
消费订单不存在
直冲直销订单
产品不存在或已经下线
购买的商品不存在,检查在开发者站是否配置此商品和商品状态
米粒账户金额错误
auth验证失败
获取用户米粒账户错误
订单创建错误
卡支付调用错误
订单处理中
订单处理超时
订单失败,未知原因
订单不存在
订单不存在,检查输入的订单号参数是否正确
订单已支付
输入参数miBi错误
订购关系已经存
authToken过期
请求的authToken已过期,请重新登录
authToken非法
请求的authToken非法,请重新登录
serviceToken过期
serviceToken过期,请重新登录
获取serviceToken失败
获取serviceToken失败,请重新登录
验证serviceToken失败
验证serviceToken失败,请重新登录
上传用户玩过的游戏失败
修改用户信息错误
获取设备ID失败
时间间隔内不能重发消息(如:赠送体力)
时间间隔为运营配置,如需调整请联系运营
超过体力最大值
体力最大值为运营配置,如需调整请联系运营
对方屏蔽接收消息
接收体力时,消息Id不相同
不需要处理
消息不能重复接收
不能使用同一个消Id重复调用acceptMessage接口
消息Id不存在
不需要处理
用户成绩信息表不存在该用户
先调用loadGameMe做初始化
不能给自己发送消息
被邀请好友的设备不支持这款游戏
超出游戏内能发送消息最大上限
消息最大上限为运营配置,如需调整请联系运营
该被邀请好友的id不是米聊用户
被邀请的好友的ID没有登录过米聊
用户体力不足
用户已经退出游戏,不能再接收消息
APPID为非社交游戏,不能使用社交API
请联系运营把游戏配置成米聊社交游戏
用户社交游戏数据加载失败
服务器系统错误,请重试
leaderBoardKey错误
运营配置的key,请联系运营确认leaderBoardKey
publicData太长
最长1000bytes
privateData太长
最长2000bytes
use heart token不合法
调用updateResult(s)之前先调用useHeart接口
小米帐号合法,但不是米聊用户
获取充值比例失败
流量切分信息出错
支付不合规被风控
调用支付接口失败时会返回这个错误码,可以查看logcat allmessage输出,或者过滤TAG “MiGameSDK”会有类似输出:errcode[200] errmsg=[null],errcode中的错误码可以对照文档
SDK中所有米聊社交API的错误返回都是-107,具体错误请以SDK回调函数onError的返回参数为准
动作正在执行
当执行SDK某个接口没有返回结果时再次调用这个接口会返回这个错误
不能调用Sync result 接口
需要联系运营配置才可以使用
调用社交API异常
升级米聊到最新版本
API接口访问受限
米聊未安装
米聊版本过低
This entry was posted in
小米平台联运游戏
适配Pad的游戏,可以有两种接入模式:
A.包名与手机版相同,则AppId与AppKey也要相同,走一份合同,小米帐号自动打通,上传时应用类型选择‘手机和平板’;
B.包名与手机版不同,则需要单独申请AppId/AppKey,财务数据也是分离的,要补签商务协议,需要额外申请打通两个AppId之间的小米账号,上传时应用类型选择‘平板’;适配Pad的游戏,包名必须后面必须加 “.mipad“;
Pad版与手机版的小米游戏SDK是同一个,版本号为v3.3.7,已经内置到开发版的Pad中
适配Pad的游戏如果也有手机版,那游戏名称后面要加HD加以区别,如“刀塔传奇HD”;
对于网络游戏:适配Pad的游戏与手机版的账户和服务器端数据要通用,用户在手机端玩的进度在Pad端能够继续,若游戏不允许同一个账户在多台设备同时在线,可以根据游戏策略提示用户;
对于单机游戏:Pad版与手机版之间的二级虚拟货币可不打通(即consumable商品),但关卡、解锁类商品(即non-consumable不可消耗商品)用户只需要购买一次。
小米平板分辨率36,请开发者尽量使用iPad mini相同的素材,保证界面清晰(清晰度会决定推广资源),
小米平版取消了物理菜单键,请游戏或应用不要再使用菜单键;
This entry was posted in
最新版本:
适配机型:小米1/2/3、红米手机、小米平板、其他安卓手机
(接入前请务必查看)
修订记录:
v4.1.0(beta)()
增加/修改社交API:
修改:shareToMiTalk图文分享(cp可调用此接口,在米聊中进行”文字+小图+小图标题”形式的分享)。
新增:shareToMiTalkForLargeImg 大图分享(cp可调用此接口,在米聊中进行”文字+大图”形式的分享)。
新增:checkMiTalkStatus 检查米聊状态。
新增:joinUnion 申请加入工会 (cp可以调用此接口,直接申请加入米聊公会)。
新增:checkJoinedUnion 检查是否已加入工会。
新增:subscribeVip 关注服务号(cp可以调用此接口,直接关注米聊服务号)。
新增:checkVipIsScubscribed 检查是否已关注服务号。
修改:sendInviteMessage 邀请好友(新增与之前接口参数不同的接口,原接口仍然保留)。
新增:openMiTalkUpdateSite 打开米聊下载页面。
新增:getUnionList 获取工会列表。
新增:getVipList 获取关注列表。
增加工会列表与订阅列表(后台可配置社交游戏的工会列表和订阅列表,在新增API中会有下发)。
替换米聊最新jar包,增加在获取authtoken时可能出现错误的提示。
修改帐号登录逻辑,米聊游戏使用米聊帐号登录,联运游戏使用系统账户登录
已接入游戏升级需要更新jar包到SDK_TY_4.0.11版本,替换assets目录中的MiGameCenterSDKService.apk文件
v4.0.9(beta) ()
修复有些情况下电信卡无法发短信充值的情况
正在支付过程中不在能点击取消按钮了,防止误点导致的支付失败
修复调用最新miui v6系统支付会崩溃的问题
v4.0.7(beta) ()
修改米币SDK,解决充值后状态页面提示充值失败
在Pad上支持浮窗,游戏券详情适配米Pad、N7
修改SDK页面横竖屏逻辑,SDK的横竖屏方向根据游戏当前的屏幕方向判断
增加syncResult和syncResults接口
shareToMiTalk接口支持网络图片地址, SDK
jar包接口保持不变,两种地址类型共用1个参数
/sdcard/xxx/xxx.png(手机内文件地址类型)
http://xxx.xxx.xxxx (网络地址类型)
v4.0.0 (beta) ()
增加对米聊社交游戏的支持
游戏登陆时兼容小米手机系统账户与米聊账号
重构部分代码,提升可维护性
支持应用内支付
修改单机、网游统一支付接口为miUniPay()
游戏类型:MiGameType 修改为 MiAppType
不再需要设置offline/online的属性
初始化时候setAppId()参数类型由int修改为String
支持繁体中文和英文
优化小米平板上的体验
新增 游戏内悬浮窗,玩家可以快速进入论坛,快速使用游戏礼券
新增 风控检测机制,若发现账号有风险会在交易时通过短信二次认证
优化 米币余额差额支付
优化 2G/3G情况下偶现的登录问题
优化 消费时可勾选是否使用米币礼券或游戏礼券
优化 充值流程,提高充值成功率
修复 ‘错误代码5’的逻辑问题
解决由于没有本地保存token导致在玩家充值时可 能会提示游戏帐户发生变化的问题
修改自升级 逻辑,当静默安装 失败后,本地保存升级文件,用户再次 进入游戏时提 示用户升级(与非 MIUI,非系统APP升级逻辑相同)
增加短信直充直消功能(仅支持单机游戏) 移动支持:2元、4元、6元、8元、10元 联通支持:2元、4元、6元、8元、10 元 电信支持:2元、4元 2.订单通知和订单查询接口增加订单类型
增加SDK功能主入口,引入攻略、论坛、客服的功能
支付接口增加用户角色信息参数
修改支付流程,不再区分大众支付与快捷支付
增加新的充值方式:移动短信充值,电信短信充值,银行卡回呼充值,米币卡充值
修改登陆成功后欢迎框样式
优化登陆逻辑,修复因服务器删除某些数据时候客户端无法登陆
大众支付方式增加联通短信充值(仅联通用户可见)
修改用户登陆时选择小号的逻辑,删除原有的小号列表页面,增加用户切换小号页面,和小号管理页面,如用户不切换默认使用上次登陆帐号登陆
增加查询用户信息接口
增加创建充值订单接口
增加Service版自升级
增加CP服务端同步用户游戏角色信息
增加查询用户信息接口
增加创建充值订单接口
支付页面支持横屏,程序优化
充值方式增加财付通安全支付和网页支付
Service版本文档初稿,支持小号功能
This entry was posted in
1. 通讯录同步
通讯录同步使用业界标准CardDAV 协议(CardDAV 协议已被
标准化,并发布为)。
通讯录同步使用
进行验证和授权,开发者首先需要登录开发者网站 ,注册应用,申请 AppID, AppKey, AppSecret. 并按照 中指定的方式获取访问用户的通讯录所需要的 Access Token。
1.1 通讯录同步API列表
通讯录同步API的域名为:
https://api.
所有的API都需要根据 OAuth 2.0 的要求加上 clientId 和 token 的查询参数,并加上 Authorization 的 header。
申请应用时分配的 AppID
获取授权时得到的 access_token
必须的 Header
Authorization
[小米帐户OAuth2.0接口][5] 中的 Mac Token
1.1.1 小米云服务的通讯录同步CardDAV API 支持以下资源和方法:
Principal:资源URL: /carddav/v1/principals/{userId:[0-9]+}
用户的小米帐号,全部为数字
注: 上面的参数是指 URL 中的参数,不是查询字符串。以下同。
支持的方法:
PROPFIND: 获取 principal 的属性
Address Book Set:资源URL: /carddav/v1/principals/{userId:[0-9]+}/addressbook
用户的小米帐号,全部为数字
支持的方法:
PROPFIND: 获取 Address Book Set 的属性
Address Book:资源URL: /carddav/v1/principals/{userId:[0-9]+}/addressbook/default
用户的小米帐号,全部为数字
支持的方法:
PROPFIND: 获取 Address Book 的属性
REPORT: 查找 Address Book 中符合条件的项
Contact:资源URL: /carddav/v1/principals/{userId:[0-9]+}/addressbook/default/{id:[\\w\\.\\-=]+}
用户的小米帐号,全部为数字
Contact ID
支持的方法:
PUT: 上传 Contact
POST: 上传 Contact,同上
DELETE: 删除 Contact
GET: 下载 Contact
1.2 API Samples
本处是CardDAV协议样例,仅供参考,要更详细的了解 CardDAV,请阅读相关RFC文件 。
寻找CardDAV主目录
客户端要寻找CardDAV的主目录中的属性 addressbook-home-set
客户端还查询了其它的一些属性,有些属性不包含在这个资源中,所以这些属性被放在 response 的404的 propstat 里面了。
PROPFIND /carddav/v1/principals/{userId} HTTP/1.1
&?xml version="1.0" encoding="UTF-8"?&
&A:propfind xmlns:A="DAV:"&
&D:addressbook-home-set xmlns:D="urn:ietf:params:xml:ns:carddav"/&
&A:displayname/&
&A:principal-collection-set/&
&A:principal-URL/&
&/A:propfind&
HTTP/1.1 207 Multi-Status
&?xml version="1.0" encoding="UTF-8"?&
&d:multistatus xmlns:cal="urn:ietf:params:xml:ns:caldav"
xmlns:card="urn:ietf:params:xml:ns:carddav"
xmlns:cs="http://calendarserver.org/ns/"
xmlns:d="DAV:" xmlns:ical="/ns/ical/"&
&d:response&
&d:href&/carddav/v1/principals/{userId}&/d:href&
&d:propstat&
&d:status&HTTP/1.1 200 OK&/d:status&
&d:displayname&Principal&/d:displayname&
&card:addressbook-home-set&
&d:href&/carddav/v1/principals/{userId}/addressbook&/d:href&
&/card:addressbook-home-set&
&d:principal-URL&
&d:href&/carddav/v1/principals/{userId}&/d:href&
&/d:principal-URL&
&/d:propstat&
&d:propstat&
&d:status&HTTP/1.1 404 Not Found&/d:status&
&d:principal-collection-set/&
&/d:propstat&
&/d:response&
&/d:multistatus&
CardDAV资源上的权限查询
得到CardDAV主目录后,客户端要查询用户权限和其它属性。
同样的,不存在的属性会被放到404的 propstat 里。
这里客户端增加了深度,Depth: 1 代表除了查询本资源上的属性,还要查询子资源的属性。
PROPFIND /carddav/v1/principals/{userId}/addressbook HTTP/1.1
&?xml version="1.0" encoding="UTF-8"?&
&A:propfind xmlns:A="DAV:"&
&A:add-member/&
&A:current-user-privilege-set/&
&A:displayname/&
&A:resourcetype/&
&A:supported-report-set/&
&A:sync-token/&
&/A:propfind&
HTTP/1.1 207 Multi-Status
&?xml version="1.0" encoding="UTF-8"?&
&d:multistatus xmlns:cal="urn:ietf:params:xml:ns:caldav"
xmlns:card="urn:ietf:params:xml:ns:carddav"
xmlns:cs="http://calendarserver.org/ns/"
xmlns:d="DAV:" xmlns:ical="/ns/ical/"&
&d:response&
&d:href&/carddav/v1/principals/{userId}/addressbook&/d:href&
&d:propstat&
&d:status&HTTP/1.1 200 OK&/d:status&
&d:displayname&Homeset&/d:displayname&
&d:current-user-privilege-set&
&d:privilege& &d:read/& &/d:privilege&
&d:privilege& &d:read-acl/& &/d:privilege&
&d:privilege& &d:read-current-user-privilege-set/& &/d:privilege&
&d:privilege& &d:unlock/& &/d:privilege&
&d:privilege& &d:write/& &/d:privilege&
&d:privilege& &d:write-acl/& &/d:privilege&
&/d:current-user-privilege-set&
&d:add-member&
&d:href&/carddav/v1/principals/{userId}/addressbook/default&/d:href&
&/d:add-member&
&d:supported-report-set&
&d:supported-report&
&d:report& &d:principal-search-property-set/& &/d:report&
&/d:supported-report&
&d:supported-report&
&d:report& &card:addressbook-query/& &/d:report&
&/d:supported-report&
&d:supported-report&
&d:report& &d:expand-property/& &/d:report&
&/d:supported-report&
&d:supported-report&
&d:report& &d:principal-property-search/& &/d:report&
&/d:supported-report&
&d:supported-report&
&d:report& &d:acl-principal-prop-set/& &/d:report&
&/d:supported-report&
&d:supported-report&
&d:report& &card:addressbook-multiget/& &/d:report&
&/d:supported-report&
&d:supported-report&
&d:report& &d:principal-match/& &/d:report&
&/d:supported-report&
&/d:supported-report-set&
&d:resourcetype&
&d:collection/&
&card:addressbook/&
&/d:resourcetype&
&/d:propstat&
&d:propstat&
&d:status&HTTP/1.1 404 Not Found&/d:status&
&d:sync-token/&
&/d:propstat&
&/d:response&
&/d:multistatus&
查询sync-token
sync-token 是个同步协议。 定义于 是比较成熟的同步方案,包括增量同步、历史数据删除、数据截断等等。
PROPFIND /carddav/v1/principals/{userId}/addressbook/default HTTP/1.1
&?xml version="1.0" encoding="UTF-8"?&
&A:propfind xmlns:A="DAV:"&
&A:sync-token/&
&/A:propfind&
HTTP/1.1 207 Multi-Status
&?xml version="1.0" encoding="UTF-8"?&
&d:multistatus xmlns:cal="urn:ietf:params:xml:ns:caldav"
xmlns:card="urn:ietf:params:xml:ns:carddav"
xmlns:cs="http://calendarserver.org/ns/"
xmlns:d="DAV:" xmlns:ical="/ns/ical/"&
&d:response&
&d:href&/carddav/v1/principals/{userId}/addressbook/default&/d:href&
&d:propstat&
&d:status&HTTP/1.1 200 OK&/d:status&
&d:sync-token&"9856"&/d:sync-token&
&/d:propstat&
&/d:response&
&/d:multistatus&
获取联系人列表
准备工作都完成了,客户端开始获取所有联系人的URL列表。
Depth变为1,获取通讯录资源和子资源的所有etag,本资源上没有etag,所以是404 。
PROPFIND /carddav/v1/principals/{userId}/addressbook/default HTTP/1.1
&?xml version="1.0" encoding="UTF-8"?&
&A:propfind xmlns:A="DAV:"&
&A:getetag/&
&/A:propfind&
HTTP/1.1 207 Multi-Status
&?xml version="1.0" encoding="UTF-8"?&
&d:multistatus xmlns:cal="urn:ietf:params:xml:ns:caldav"
xmlns:card="urn:ietf:params:xml:ns:carddav"
xmlns:cs="http://calendarserver.org/ns/"
xmlns:d="DAV:" xmlns:ical="/ns/ical/"&
&d:response&
&d:href&/carddav/v1/principals/{userId}/addressbook&/d:href&
&d:propstat&
&d:status&HTTP/1.1 200 OK&/d:status&
&/d:propstat&
&d:propstat&
&d:status&HTTP/1.1 404 Not Found&/d:status&
&d:getetag/&
&/d:propstat&
&/d:response&
&d:response&
&d:href&/carddav/v1/principals/{userId}/addressbook/045e9aa4af&/d:href&
&d:propstat&
&d:status&HTTP/1.1 200 OK&/d:status&
&d:getetag&222&/d:getetag&
&/d:propstat&
&/d:response&
&d:response&
&d:href&/carddav/v1/principals/{userId}/addressbook/default/045e9aa17ca9&/d:href&
&d:propstat&
&d:status&HTTP/1.1 200 OK&/d:status&
&d:getetag&333&/d:getetag&
&/d:propstat&
&/d:response&
&/d:multistatus&
下载所有联系人
上个步骤获取到所有联系人的URL后,开始下载所有联系人,使用的是 MultiGet 的 Report 协议。
这个 Report 定义在 P31。
address-data 这个属性内容要保存VCard格式的联系人。
REPORT /carddav/v1/principals/{userId}/addressbook/default HTTP/1.1
&?xml version="1.0" encoding="UTF-8"?&
&D:addressbook-multiget xmlns:D="urn:ietf:params:xml:ns:carddav"&
&A:prop xmlns:A="DAV:"&
&A:getetag/&
&D:address-data/&
&A:href xmlns:A="DAV:"&/carddav/v1/principals/{userId}/addressbook/default/045e9aa4af&/A:href&
&A:href xmlns:A="DAV:"&/carddav/v1/principals/{userId}/addressbook/default/045e9aa17ca9&/A:href&
&/D:addressbook-multiget&
HTTP/1.1 207 Multi-Status
&?xml version="1.0" encoding="UTF-8"?&
&d:multistatus xmlns:cal="urn:ietf:params:xml:ns:caldav"
xmlns:card="urn:ietf:params:xml:ns:carddav"
xmlns:cs="http://calendarserver.org/ns/"
xmlns:d="DAV:" xmlns:ical="/ns/ical/"&
&d:response&
&d:href&/carddav/v1/principals/{userId}/addressbook/default/045e9aa4af&/d:href&
&d:propstat&
&d:status&HTTP/1.1 200 OK&/d:status&
&d:getetag&111&/d:getetag&
&card:address-data&BEGIN:VCARD
VERSION:3.0
N:张;三;;;
&/card:address-data&
&/d:propstat&
&/d:response&
&d:response&
&d:href&/carddav/v1/principals/{userId}/addressbook/default/045e9aa17ca9&/d:href&
&d:propstat&
&d:status&HTTP/1.1 200 OK&/d:status&
&d:getetag&222&/d:getetag&
&card:address-data&BEGIN:VCARD
VERSION:3.0
N:李;四;;;
&/card:address-data&
&/d:propstat&
&/d:response&
&/d:multistatus&
添加/修改一个联系人
IOS添加和修改联系人都使用PUT方法,把Vcard内容放到body里即可。
PUT /carddav/v1/principals/{userId}/addressbook/default/045e9aa17ca9 HTTP/1.1
BEGIN:VCARD
VERSION:3.0
N:王;五;;;
HTTP/1.1 201 Created
删除一个联系人
DELETE /carddav/v1/principals/{userId}/addressbook/default/045e9aa17ca9 HTTP/1.1
HTTP/1.1 204 No Content
同步修改过的联系人
同步时,客户端带着上次拿到的 sync-token 上来,服务器要返回这个 sync-token 以后的所有数据变化。
添加或修改的,返回200;删除的,返回404
REPORT /carddav/v1/principals/{userId}/addressbook/default HTTP/1.1
&?xml version="1.0" encoding="UTF-8"?&
&A:sync-collection xmlns:A="DAV:"&
&A:sync-token&"9856"&/A:sync-token&
&A:sync-level&1&/A:sync-level&
&A:getetag/&
&/A:sync-collection&
&?xml version="1.0" encoding="UTF-8"?&
&d:multistatus xmlns:cal="urn:ietf:params:xml:ns:caldav"
xmlns:card="urn:ietf:params:xml:ns:carddav"
xmlns:cs="http://calendarserver.org/ns/"
xmlns:d="DAV:" xmlns:ical="/ns/ical/"&
&d:response&
&d:href&/carddav/v1/principals/{userId}/addressbook/default/2&/d:href&
&d:status&HTTP/1.1 404 Not Found&/d:status&
&/d:response&
&d:response&
&d:href&/carddav/v1/principals/{userId}/addressbook/default/3&/d:href&
&d:propstat&
&d:status&HTTP/1.1 200 OK&/d:status&
&d:getetag&4&/d:getetag&
&/d:propstat&
&/d:response&
&d:sync-token&100005&/d:sync-token&
&/d:multistatus&
1.3 开发者参考
已经有一些 Open Source 的关于 WedDAV (CardDAV/CalDAV) 以及 vCard 的实现可以参考。
中就列出了一些开源的工具和库,其中包括 vCard 的parser, 以及一个完整的客户端和服务端实现
(代码见,可参考其中的client 库。但免费版只实现了 WebDAV, CardDAV的扩展部分需要自己实现。)
这里还有一个简化的 , 应该可以满足 WebDAV 的xml解析等功能。
This entry was posted in
1. 为什么需要做签名?
小米开放平台使用作为验证与授权协议。是一个开放标准,允许第三方应用在用户授权的情况下访问其在网站上存储的信息资源(如账号信息,好友列表),而这一过程中网站无需将用户的账号密码告诉给第三方应用。小米协议支持的,所以必须使用相对应的签名作为完全访问的验证。()
2. 为什么需要用户授权,什么时候需要授权?
按照开放协议,小米作为服务提供方必须在用户授权同意的情况下才能将用户的资源提供给其他第三方使用。
3. 如果是网页应用没有包,如何获取等信息?
如果不是一个客户端应用,可以在 相应的等信息。
4. 已经创建了,请求为何提示客户端标识符无效 ?
1) 一个新的如果需要使用小米开放平台的服务,需要开通账号服务。开启账号服务步骤:进入应用详情 à 帐号接入服务详情à 立即开启 à 输入。
2) URL请求没有做处理,导致参数传递到服务器上有错误。
5. 请求接口返回 用户或授权服务器拒绝了请求这样错误的原因是什么?
原因如下:
1) 请求使用的和 不是对应的或者输入的不是由小米米开发平台产生的,可以通过获取获取的接口来验证参数的正确性。
2) Mac签名值错误,下面给出一个例子说明每个步骤的输入输出值。
请求的输入:以请求用户基本信息为例说明, 请求的如下:
随机产生的Nonce: 82360
Http Method: GET
URL拆解如下:
Host: open.
Uri path: /user/profile
Url query: (按照参数名字典序排列)
clientId=608&token=eJxjYGAQydknLLCFsVyIR-DxSqdTnQFGfX4yDAwMjAzxQJIheJfnRTDtvAhMM8SE_2FgWDw7Rg3MYzdUMFIwVjABMplzE5MBClYRuw
签名的格式化字符串为换行字符:
82360\nGET\nopen.\n/user/profile\nclientId=608&token=eJxjYGAQydknLLCFsVyIRDxSqdTnQFGfX4yDAwMjAzxQJIheJfnRTDtvAhMM8SE_2FgWDw7Rg3MYzdUMFIwVjABMplzE5MBClYRuw\n
Mac Key: ORhx44qK6Alqf8vt2rGB5f-oPq0
签名结果输出:
Signature(Base64之后的结果: 9uvros2WcjMaJ3pH25eQZU9p5pA=
6. 访问后返回参数已经被使用是什么原因?
原因如下:
1) 传递的和其他的发生的碰撞,一般重试一次错误消失;
2) Nonce中的时间部分(冒号后面的部分)为标准北京时间的分钟数,在线时间参考:
This entry was posted in
自荐入口:
常见问题:、
!!!!专题上线时间注意!!!!
每周一公布1-2个专题前瞻,每周四下午六点后会专题自荐帖子里公布通过的应用,每周五将专题上线到应用商店,如遇专题上线时间与应用商店其他热点专题存在档期冲突,我们会根据档期重新调整专题的上线时间,具体专题上线时间请以最终上线的时间为准。
一、专题自荐参与方式:
每周一MIUI论坛和小米开发者交流群中公布1-2个专题前瞻。编辑会选出一些和专题是否契合的优质应用,如果您的应用不在其中,不要着急,您可以参照置顶帖的格式回帖自荐,自荐成功的应用即可加入到本期专题。
为了增加申请专题自荐的成功率,希望各位同学都首先做好以下功课:
1、清晰明白的阅读专题标题和专题文案,了解专题的策划方向是否的确和自己家的 app契合。
2、对编辑推荐的应用类型与质量要求也比较清楚,明白这些 app 为什么被推荐,但是由于专题推荐 app 数量有限,尽量不要自荐不同主题的专题下自荐同类应用。
3、符合专题策划方向,并且应用质量优秀的应用才是专题自荐编辑选择的标准,并不是生硬的贴合专题内容。我们的编辑也会认真审核每一个提交自荐的应用,但是如果没有自荐成功请先参考下1、2两点。如果自荐成功会在帖子上公布自荐成功的 app 名单。
专题自荐截止日期:
专题正式上线的前一天晚上的18:00。如下图中的红框部分:专题上线的时间为日,本期的专题可以自荐的时间即为日18:00之前。
专题文案:
由应用商店编辑策划,不对外开放申请。如下图中的绿框部分。
专题初定应用:
由编辑选出,新应用或新版本、应用质量高、近期未推荐、与专题文案契合度较高,具体上线内容以当日实际上线专题内容为准。如下图中的蓝框部分。
回帖格式:
请参照帖子中的置顶贴的格式回复自荐,如下图所示。
注:应用的ID为应用在小米应用商店前台链接最后的数字,如下图中,米聊的应用ID为:323。
审核标准:
我们会根据您的回复对相关应用进行审核,能够入选专题的应用需要符合下面几项标准:
1.应用质量较高:UI/UE让用户有良好的使用体验,应用内容充实,图文质量较高,排版优秀,字体美观。
2.新应用或新版本:刚上线的新应用、或近期有大版本更新的应用。
3.近期未推荐:该版本未在其他的位置进行过推荐。
4.专题契合度:应用的功能、内容、适用人群与自荐的专题有良好的契合度。
二、展示位置与时间
每周五会上线-12个专题,专题展示时间为七天,即本周五至下周四,如遇临时热门话题的专题上线,会缩短专题上线时间,历史专题可以在热门专题列表中搜索到。
在档期内的展示位置如下:(PC端和手机客户端同步)
PC端展示位置:
手机端位置:
档期外的展示位置:
在手机客户端的首页拉倒最下面即是历史专题的入口——热门专题,点击即可进入历史的专题界面。
三、常见问题Q&A
Q:专题自荐的参与方式是什么?
A:参照前瞻贴的置顶回复贴格式在下面回帖即可参与。
Q:怎么得知最新的专题前瞻信息?
A:把下面的链接存个书签吧亲:
Q:如何得知我的自荐申请是否通过了?
A:自荐申请成功后,我们会在当期专题前瞻帖子上公布专题申请成功的应用。
Q:为什么我总是自荐失败呢?而且貌似很少有自荐成功的应用,编辑真的会看吗?
A:每一个自荐申请,我们的编辑都会根据审核标准进行审慎的审核,确实是很少有符合审核标准的自荐申请。审核标准请见上文。
Q:专题文案可以由开发者策划并申请吗?
A:目前专题文案是完全由编辑策划的,暂不能对外申请。请大家放心,我们的编辑会紧跟潮流,迅速反应,策划出符合流行趋势的专题文案。
This entry was posted in
1、申请条件
必须是小米轻应用中心已收录轻应用
为小米轻应用中心提供相应活动奖品
为活动设计相应活动页面
2、小米轻应用中心推广资源
首屏专题位、精品推荐首屏位
小米旗下官方论坛、微博传播
(根据活动内容评估资源投入)
3、申请流程
将活动方案发邮件至、
活动方案格式:
1、轻应用名称
2、活动时间
3、活动介绍
4、参与流程
5、奖品介绍
收到活动申请邮件后,小米工作人员将会在1-2个工作日内对活动方案进行审核,并将审核结果以邮件的形式通知开发者。
4、活动上线流程
(1)完成轻应用内活动页面设计
(2)确定活动排期、宣传资源排期
(3)活动上线
(4)活动结案
其他BD合作请联系:
This entry was posted in

我要回帖

更多关于 斗鱼token已过期 的文章

 

随机推荐