1. Обновлен функционал оплаты SDK
1. Добавлено пользовательское соглашение
1. Улучшена функция предотвращения зависимости от игры, добавлен обратный вызов выхода
2. Обновлено SDK до версии v1. 4. 7. 230
1. Добавлен вызов интерфейса подтверждения личности
2. Обновлено SDK до версии v1. 4. 6. 229
1. Добавлена функция ограничения времени использования пользователем
2. Изменены правила подтверждения личности пользователя
3. Предоставлены методы для получения информации о подтверждении личности пользователя, возрасте пользователя и статусе пользователя как гостя
4. Обновлено SDK до версии v1. 4. 5. 228
1. Добавлена динамическая подача разрешений приложения для Android 6. 0
2. Обновлено SDK до версии v1. 4. 4. 227
1. В SDK добавлен модуль подтверждения личности
2. Поддержка системы Android 7. 0
3. Улучшена производительность
Игры, уже интегрированные с SDK версии 1. 3. 0 или выше, должны заменить файлы sinagame_sdk_xxx. jar и файлы sinagame_res в папке raw.
Для новых игр, если в файле AndroidMainifest.xml содержит неудаленные параметры каналов, их следует удалить, иначе это может привести к ошибкам.
1. В SDK добавлен модуль управления аккаунтами, поддерживающий функции отвязки, изменения пароля и т. д.
Игры, уже интегрированные с SDK версии 1. 3. 0 или выше, должны заменить файлы sinagame_sdk_xxx. jar и файлы sinagame_res в папке raw.
Для новых игр, если в файле AndroidManifest. xml есть неудаленные параметры каналов, их следует удалить, иначе это может привести к ошибкам.
1. В SDK добавлена функция получения купонов
Игры, уже интегрированные с SDK версии 1. 3. 0 или выше, должны заменить файлы sinagame_sdk_xxx. jar и файлы sinagame_res в папке raw.
Для новых игр, если в файле AndroidManifest. xml есть неудаленные параметры каналов, их следует удалить, иначе это может привести к ошибкам.
1. SDK поддерживает систему Android 6. 0
Игры, уже интегрированные с SDK версии 1. 3. 0 или выше, должны заменить файлы sinagame_sdk_xxx. jar и файлы sinagame_res в папке raw.
1. В странице кассы добавлены ссылки на детали платежа
2. Если есть купоны, их можно использовать для оплаты
3. Изменен процесс заказа, теперь заказы делаются до перехода на страницу кассы
4. Исправлены ошибки сильного обновления для некоторых специальных моделей
#### 2015-09-18 v1.3.0_212
### 2. Введение
Документация применима ко всем клиентским играм для Android, работающим с партнерами. Перед подключением убедитесь, что ваше приложение получило appkey и параметр redirect от наших операционных коллег. Если вы еще не получили эти данные, свяжитесь с нашими операционными коллегами.
### 3. Подготовка
* Импорт пакета SDK
Скопируйте 5 файлов из пакета ресурсов SDK в проект игры, как показано на рисунке ниже

* Настройка AndroidManifest
В файле AndroidManifest.xml проекта настройте права пользователя
Пожалуйста, скопируйте следующий код настроек прав в файл AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
``` <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- Необходимо для автоматического считывания кода подтверждения по SMS -->
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<!-- Необходимо для регистрации с помощью одного нажатия -->
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!-- Платежи через UnionPay требуют фотографии при излишнем пополнении счета -->
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.hardware.camera.autofocus" />
<!-- Платежи через UnionPay требуют видео при излишнем пополнении счета -->
<uses-permission android:name="android.permission.RECORD_VIDEO"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
WeiboGameSDKAPI.login(act, new SinaGameCallBack() {
@Override
public void onResult(int code, Object obj) {
if (code == SUCCESS) {
SinaUser user = (SinaUser) obj;
String json = user.toString();
}
//else if для обработки других состояний
}
});
Если вход успешен, то код будет равен 1, объект obj можно привести к типу SinaUser. Если вход неудачен или отменен, то объект obj будет иметь тип String, содержащий соответствующее сообщение об ошибке.
Примечание: из-за проблем, связанных с версией, поля suid и id объекта SinaUser имеют одинаковые значения и могут использоваться как уникальные идентификаторы пользователя. Можно использовать любой из них.* Выход (отмена входа) (доступен, необязательный)
WeiboGameSDKAPI.logout(act);
Этот метод очистит информацию входа из глобальной переменной SDK.
WeiboGameSDKAPI.isLogin(act);
WeiboGameSDKAPI.exit(act, new SinaGameCallBack() {
@Override
public void onResult(int code, Object obj) {
if (code == SUCCESS) {
//Логика выхода
}
}
});
Когда код обратного вызова равен 1, это указывает на то, что пользователь нажал кнопку выхода в диалоговом окне выхода, в этом случае сторона, принимающая вызов, должна самостоятельно обрабатывать событие выхода, например, вызвать следующий код для завершения процесса:
MainActivity.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());
WeiboGameSDKAPI.switchAccount(act, new SinaGameCallBack() {
@Override
public void onResult(int code, Object obj) {
//Результат обратного вызова аналогичен результату входа
}
});
Исправленный текст:
WeiboGameSDKAPI.logout(act);
Этот метод очистит информацию входа из глобальной переменной SDK.
WeiboGameSDKAPI.isLogin(act);
WeiboGameSDKAPI.exit(act, new SinaGameCallBack() {
@Override
public void onResult(int code, Object obj) {
if (code == SUCCESS) {
// Логика выхода
}
}
});
Когда код обратного вызова равен 1, это указывает на то, что пользователь нажал кнопку выхода в диалоговом окне выхода. В этом случае сторона, принимающая вызов, должна самостоятельно обрабатывать событие выхода, например, вызвать следующий код для завершения процесса:
MainActivity.this.finish();
android.os.Process.killProcess(android.os.Process.myPid());
WeiboGameSDKAPI.switchAccount(act, new SinaGameCallBack() {
@Override
public void onResult(int code, Object obj) {
// Результат обратного вызова аналогичен результату входа
}
});
```* Оплата **(обязательный)**```
/**
* Платеж
* @param act
* @param amount Сумма в центах
* @param subject Название товара
* @param desc Описание товара
* @param pt Прозрачный параметр, передается обратно серверу при асинхронном вызове, используется только для проверки, поэтому может быть любым значением.
*/
WeiboGameSDKAPI. pay(act, amount, subject, desc, pt, new SinaGameCallBack() {
@Override
public void onResult(int code, Object obj) {
switch (code) {
case SUCESS:
Toast.makeText(act, "Платеж успешен, номер заказа:" + obj.toString(), Toast.LENGTH_SHORT).show();
break;
case CANCEL:
Toast.makeText(act, "Пользователь отменил платеж", Toast.LENGTH_SHORT).show();
break;
case TIMEOUT:
Toast.makeText(act, "Уведомление о платеже не пришло вовремя, пожалуйста, используйте асинхронное уведомление сервера", Toast.LENGTH_SHORT).show();
break;
case START:
case ERROR:
Log.d(TAG, obj.toString());
break;
default:
break;
}
}
});
WeiboGameSDKAPI.isVisitor(act);
WeiboGameSDKAPI.getUserAge(act);
WeiboGameSDKAPI.isRealName(act);
WeiboGameSDKAPI.verfyRealname(act, new SinaGameCallBack() {
@Override
public void onResult(int code, Object obj) {
код: 1 - успех, 0 - неудача
}
});
WeiboGameSDKAPI.registLogoutListener(new SinaGameCallBack() {
@Override
public void onResult(int code, Object obj) {
}
});
Примечание: прозрачный параметр pt может быть любым значением, например "abc123". При успешном платеже будет асинхронно передан обратно серверу, и сервер получит информацию "abc123".
При пакетировании и тестировании, помимо входа в систему через Weibo, все остальные функции работают нормально. Поэтому при тестировании входа через Weibo, пожалуйста, используйте предоставленный нами keystore для подписи.
Пароль keystore: android
Пароль ключа: androiddebugkey
Пароль ключа: android
Кроме того, для удобства тестирования во время разработки можно настроить использование пакета debug из SDK.
```keystore конфигурируется для использования по умолчанию в Eclipse, чтобы каждый запущенный отладочный пакет использовал официальную подпись, что позволяет нормально использовать вход через Weibo.
! [Введите описание изображения](http://git.oschina.net/uploads/images/2015/0813/171103_14f8b950_483144.png "Вставьте заголовок изображения здесь")
### 6. Классы инструментов SDK
String ip = WeiboGameSDKHelper.getIPAddress();
String machineId = WeiboGameSDKHelper.getMachineId(this);
### 7. Логи
Используется "DEBUG" как метка фильтрации логов. В логах можно увидеть версию SDK, информацию о запросах к интерфейсу и т. д.

### 8. Часто задаваемые вопросы
##### 1. Если при входе через Weibo отображается ошибка с кодом ошибки 21338, это может быть вызвано несоответствием между appkey, пакетом и keystore. Пожалуйста, проверьте, соответствуют ли эти три параметра.
##### 2. locSDK_xx.jar — это JAR-файл для локализации от Baidu, который необходим для работы с UnionPay. Его необходимо добавить в проект, иначе при попытке использования UnionPay будет отображаться ошибка (если другие SDK, интегрированные в игре, уже содержат locSDK_xx.jar, конфликтующий с этим, то этот JAR-файл не должен быть добавлен повторно).
##### 3. Ошибка: java.lang.ClassNotFoundException: com.weibo.game.sdk.SinaGameSDK
##### Причина: файл sinagame_res из пакета ресурсов не был скопирован в папку res/raw.
##### 4. Ошибка: java.lang.ClassNotFoundException: Не удалось найти класс "com.weibo.game.sdk.SinaGameSDK" в пути:
##### Причина: метод WeiboGameSDKAPI.init(this) не был вызван в методе onCreate активности.
##### 5. В AndroidManifest.xml файле H5PayActivity для Alipay зафиксирован в портретном режиме, так как его использование в ландшафтном режиме дает плохой опыт. Поэтому рекомендуется использовать только портретный режим.
##### 6. Если в вашем проекте есть несколько armeabi-xx директорий, пожалуйста, скопируйте все so-файлы в соответствующие директории или удалите другие armeabi-xx директории, используя только стандартную директорию armeabi.Это поможет уменьшить размер игры.
##### 7. Если вход через Weibo не работает, сначала проверьте параметры конфигурации, такие как значение sina_game_redirect в файле AndroidManifest.xml. Если это значение равно http://m.game.weibo.cn/oauth2/default, проверьте значение подписи, равное b6afc731feca47bb17338c7ba5b20b60. Если все параметры верны, обратитесь к нам.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )