IGAW 奖励服务器集成 : 客户端方式
在接收 IGAW 奖励服务器传达的 Callback 时,开发商在不使用自己服务器的情况下,可以通过客户端集成的方式,处理奖励支付。
奖励服务器集成方式设置
为了通过客户端处理奖励 Callback,请修改(*)奖励服务器集成方式。
找到在 AppDelegate.m 的 application: didFinishLaunchingWithOptions: 调用的 IgaworksCore 初始化 API,将 useIgaworksRewardServer 的 Parameter 设置为 YES。
#import "AppDelegate.h"
#import <IgaworksCore/IgaworksCore.h>
@implementation AppDelegate
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[IgaworksCore igaworksCoreWithAppKey:@"YOUR_APP_KEY" andHashKey:@"YOUR_HASH_KEY"];
[IgaworksCore shared].useIgaworksRewardServer = YES;
[IgaworksCore shared].clientRewardDelegate = self;
return YES;
}
+ (*)奖励服务器集成方式 : 集成奖励支付所需服务时,需要的选项。请使用 useIgaworksRewardServer Parameter 进行设置。
- NO : 使用自己的 Callback 服务器
- YES : 使用 IGAWorks 的奖励服务器
奖励 Delegate 登录和实现
为了接收从 IGAW 奖励服务器传达的奖励信息,请登录 Delegate 并实现。
Import IgaworksAD.h,在 interface 中登录 IgaworksADClientRewardDelegate。
#import <IgaworksCore/IgaworksCore.h>
#import <AdPopcornOfferwall/AdPopcornOfferwall.h>
#import <AdPopcornOfferwall/RewardInfo.h>
@interface ViewController() <IgaworksADClientRewardDelegate>
@end
@implementation AppDelegate
@end
+ RewardInfo.h 是接收和处理 NSArray 方式的奖励信息所需的 header。
奖励信息查询和奖励支付处理
通过 onRewardRequestResult: withMessage: items: 传达 IGAW 奖励服务器中未处理的奖励信息。
奖励信息是通过定义模型形式的 (NSArray *)items Parameter 传达给 RewardInfo.h。NSArray 包含的信息如下。
- items[i].campaignKey : 用户完成参与的活动 Key
- items[i].campaignName : 用户完成参与的活动名称
- items[i].RTID : 完成活动的 ID
- items[i].quantity : 支付给用户的虚拟货币数量
为了向 IGAW 奖励服务器传达该事实,需调用 AdPopcornOfferwall.h 的 didGiveRewardItemWithRewardKey API。
-(void)onRewardRequestResult:(BOOL)isSuccess withMessage:(NSString *)message items:(NSArray *)items{
for (RewardInfo *item in items) {
NSString *campaignKey = item.campaignKey;
NSString *campaignName = item.campaignName;
NSString *rewardKey = item.RTID;
NSUInteger quantity = item.quantity;
//传送 items Parameter 包含的 RTID。
[AdPopcornOfferwall didGiveRewardItemWithRewardKey:item.RTID];
}
}
奖励处理结果确认
通过 onRewardCompleteResult: withMessage: resultCode: withCompletedRewardKey: Delegate 传达 didGiveRewardItemWithRewardKey API 的处理结果。
确认传送结果,处理支付奖励等的内容。
- isSuccess : 奖励信息结果
- message : 奖励处理信息结果
- resultCode : 奖励结果代码 (参考如下应答码)
- completedRewardKey : 完成支付的 RTID
- (void)onRewardCompleteResult:(BOOL)isSuccess withMessage:(NSString *)message resultCode:(NSUInteger)resultCode withCompletedRewardKey:(NSString *)completedRewardKey {
// didGiveRewardItemWithRewardKey API 传送的 RTID 处理结果为"成功"时,才能向用户支付奖励。
}
应答代码
如下通过 Delegate 传送的应答代码。
代码 | 说明 |
1 | 成功 |
100 | 完成过程中,出现失误 |
200 | 无知道的失误 (Exception) |
1400 | AppKey 错误 |
1410 | 设置错误奖励服务器形态 |
3000 | HashKey 错误 |
集成测试
adPOPcorn 管理页面 [积分墙管理 > 验收和优化 > 设置测试设备] 菜单中,添加测试设备,参与并完成测试广告后,如果正常接收到奖励的话,那么集成成功。