ポイント管理

ポイント管理機能はポイントの増減に必要な基本的な仕組みを提供します。

付与したポイントでクーポンを発行したり、アプリケーション独自のインセンティブをユーザーに与えることができます。

このページでは、ポイント管理機能を利⽤する実装例を紹介します。

注意

ポイント管理機能はライトプラン、ベーシックプランではご利用いただけません。利用したい場合は、製品サイトopen in new windowよりお問い合わせください。

ポイント情報を取得する

現在、所持しているポイント情報の取得はgetPointメソッドで行います。

let userAccessToken = "xxx"

RKZService.sharedInstance().getPoint(userAccessToken) { point, responseStatus in
    if responseStatus.isSuccess, let point = point {
        // 成功時
        print("user_id:", point.user_id ?? "")
        print("point:", point.point ?? "") // ポイント数
    } else {
        // 失敗
        print("statusCode:", responseStatus.statusCode.rawValue)
        print("message:", responseStatus.message ?? "")
    }
}
NSString *userAccessToken = @"xxx";

[[RKZService sharedInstance] getPoint:userAccessToken withBlock:^(RKZPointData * _Nullable point, RKZResponseStatus * _Nonnull responseStatus) {
    if (responseStatus.isSuccess) {
        // 成功時
        NSLog(@"user_id: %@", point.user_id);
        NSLog(@"point: %@", point.point); // ポイント数
    } else {
        // 失敗
        NSLog(@"statusCode: %ld", responseStatus.statusCode);
        NSLog(@"message: %@", responseStatus.message);
    }
}];
val userAccessToken = "xxx"

RKZClient.getInstance().getPoint(userAccessToken) { point, rkzResponseStatus ->
    if (rkzResponseStatus.isSuccess) {
        // 成功時
        Log.d(TAG, "userId: ${point.userId}")
        Log.d(TAG, "point: ${point.point}") // ポイント数
    } else {
        // 失敗
        Log.e(TAG, "statusCode: ${rkzResponseStatus.statusCode}")
        Log.e(TAG, "message: ${rkzResponseStatus.message}")
    }
}
String userAccessToken = "xxx";

RKZClient.getInstance().getPoint(userAccessToken, new OnGetPointListener() {
    @Override
    public void onGetPoint(Point point, RKZResponseStatus rkzResponseStatus) {
        if (rkzResponseStatus.isSuccess()) {
            // 成功時
            Log.d(TAG, "userId: " + point.getUserId());
            Log.d(TAG, "point: " + point.getPoint()); // ポイント数
        } else {
            // 失敗
            Log.e(TAG, "statusCode: " + rkzResponseStatus.getStatusCode());
            Log.e(TAG, "message: " + rkzResponseStatus.getMessage());
        }
    }
});
var userAccessToken = 'xxx'

RKZClient.getPoint(userAccessToken, function (point) {
  // 成功時
  console.debug('user_id:', point.user_id)
  console.debug('point:', point.point) // ポイント数
}, function (error) {
  // 失敗時
  console.error('status_code:', error.status_code)
  console.error('message:', error.message)
})
const userAccessToken = 'xxx'

const point = await RKZ.Point.get(userAccessToken)
console.debug('user_id:', point.user_id)
console.debug('point:', point.point) // ポイント数
final userAccessToken = 'xxx';

final point = await RKZClient.instance.getPoint(userAccessToken);
print('userId: ${point.userId}');
print('point: ${point.point}'); // ポイント数

ユーザーにポイントを付与する

ユーザーにポイントを付与するにはaddPointメソッドを使用します。

ポイント数に負の値を指定することでポイントの減算も行えます。

let userAccessToken = "xxx"
let point: NSNumber = 10 // 付与するポイント数
let contactDate: Date? = nil // ポイントを付与した日時(未指定の場合、システム側で設定されます)

RKZService.sharedInstance().addPoint(userAccessToken, point: point, contactDate: contactDate) { point, responseStatus in
    if responseStatus.isSuccess, let point = point {
        // 成功時
        print("user_id:", point.user_id ?? "")
        print("point:", point.point ?? "")
    } else {
        // 失敗
        print("statusCode:", responseStatus.statusCode.rawValue)
        print("message:", responseStatus.message ?? "")
    }
}
NSString *userAccessToken = @"xxx";
NSNumber *point = @10; // 付与するポイント数
NSDate *contactDate = nil; // ポイントを付与した日時(未指定の場合、システム側で設定されます)

[[RKZService sharedInstance] addPoint:userAccessToken point:point contactDate:contactDate withBlock:^(RKZPointData * _Nullable point, RKZResponseStatus * _Nonnull responseStatus) {
    if (responseStatus.isSuccess) {
        // 成功時
        NSLog(@"user_id: %@", point.user_id);
        NSLog(@"point: %@", point.point);
    } else {
        // 失敗
        NSLog(@"statusCode: %ld", responseStatus.statusCode);
        NSLog(@"message: %@", responseStatus.message);
    }
}];
val userAccessToken = "xxx"
val point = 10 // 付与するポイント数
val contactDate: Calendar? = null // ポイントを付与した日時(未指定の場合、システム側で設定されます)

RKZClient.getInstance().addPoint(userAccessToken, point, contactDate) { point, rkzResponseStatus ->
    if (rkzResponseStatus.isSuccess) {
        // 成功時
        Log.d(TAG, "userId: ${point.userId}")
        Log.d(TAG, "point: ${point.point}")
    } else {
        // 失敗
        Log.e(TAG, "statusCode: ${rkzResponseStatus.statusCode}")
        Log.e(TAG, "message: ${rkzResponseStatus.message}")
    }
}
String userAccessToken = "xxx";
Integer point = 10; // 付与するポイント数
Calendar contactDate = null; // ポイントを付与した日時(未指定の場合、システム側で設定されます)

RKZClient.getInstance().addPoint(userAccessToken, point, contactDate, new OnGetPointListener() {
    @Override
    public void onGetPoint(Point point, RKZResponseStatus rkzResponseStatus) {
        if (rkzResponseStatus.isSuccess()) {
            // 成功時
            Log.d(TAG, "userId: " + point.getUserId());
            Log.d(TAG, "point: " + point.getPoint());
        } else {
            // 失敗
            Log.e(TAG, "statusCode: " + rkzResponseStatus.getStatusCode());
            Log.e(TAG, "message: " + rkzResponseStatus.getMessage());
        }
    }
});
var userAccessToken = 'xxx'
var point = 10 // 付与するポイント数
var addedDate = null // ポイントを付与した日時(未指定の場合、システム側で設定されます)

RKZClient.addPoint(userAccessToken, point, addedDate, function (newPoint) {
  // 成功時
  console.debug('user_id:', newPoint.user_id)
  console.debug('point:', newPoint.point) // ポイント数
}, function (error) {
  // 失敗時
  console.error('status_code:', error.status_code)
  console.error('message:', error.message)
})
const userAccessToken = 'xxx'
const point = 10 // 付与するポイント数
const addedDate = null // ポイントを付与した日時(未指定の場合、システム側で設定されます)

const newPoint = await RKZ.Point.add(userAccessToken, point, addedDate)
console.debug('user_id:', newPoint.user_id)
console.debug('point:', newPoint.point) // ポイント数
final userAccessToken = 'xxx';
final point = 10; // 付与するポイント数
DateTime? addedDate; // ポイントを付与した日時(未指定の場合、システム側で設定されます)

final newPoint = await RKZClient.instance.addPoint(userAccessToken, point, addedDate: addedDate);
print('userId: ${newPoint.userId}');
print('point: ${newPoint.point}'); // ポイント数

ヒント

コンタクト履歴を登録すると同時にポイントの付与を行うこともできます。コンタクト履歴でのポイント付与はコンタクト履歴を追加するを参照してください。