版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.06.10 |
前言
很多app種都集成環信做第三方信息通訊工具,這里我們就看一下環信的主要功能和集成方法。先給出環信3.0的地址。
感興趣的可以參考:
1. 環信ios客戶端的集成(一)
2. 環信ios客戶端的集成(二)
3. 環信ios客戶端的集成(三)
4. 環信ios客戶端的集成(四)
5. 環信ios客戶端的集成(五)
6. 環信ios客戶端的集成(六)
7. 環信ios客戶端的集成(七)
8. 環信ios客戶端的集成(八)
9. 環信ios客戶端的集成(九)
這一篇主要說一下環信的 環信紅包接入文檔(iOS)。
??新開商戶可免費發送累計5000元總額的紅包,超過5000元后,紅包功能自動關閉,直到商戶付費購買增值服務“紅包功能”后,該功能重新開啟,購買增值服務請咨詢環信商務經理。
一、集成概述
- 紅包SDK分為兩個版本,即錢包版紅包SDK與支付寶版紅包SDK。
- 使用錢包版紅包SDK的用戶,可以使用銀行卡支付或支付寶支付等第三方支付來發紅包;收到的紅包金額會進入到錢包余額,并支持提現到綁定的銀行卡。
- 使用支付寶版紅包SDK的用戶,發紅包僅支持支付寶支付;收到的紅包金額即時入賬至綁定的支付寶賬號。
- 請選擇希望接入的版本并下載對應的SDK進行集成,錢包版紅包SDK與支付寶版紅包SDK集成方式相同。
- 需要注意的是如果已經集成了錢包版紅包SDK,暫不支持切換到支付寶版紅包SDK(兩個版本不支持互通)。
- 集成演示Demo,開發者可以通過此Demo了解iOS紅包SDK的集成,集成方式僅供參考。
二、紅包開源模塊
紅包開源模塊介紹
RedpacketAliPay
- 為支付寶版SDK處理支付寶授權和支付寶支付回調
RedpacketJDPay
- 為錢包版SDK處理支付寶支付回調
RedpacketCell
- 紅包SDK內的紅包卡片樣式
RedpacketCellResource.bundle
- 紅包開源部分的資源文件
RedpacketChatViewController
- 繼承自ChatViewController
- 包含發紅包收紅包功能
- 單聊紅包包含小額隨機紅包和普通紅包
- 群紅包包含定向紅包,普通紅包和拼手氣紅包
- 收紅包可以接受各種紅包類型包含營銷紅包
RedpacketUserConfig 紅包SDK初始化文件
- 實現紅包SDK注冊
- 實現當前用戶獲取
- 實現紅包SDK初始化和紅包IM消息和透傳消息處理
三、Cocoapods支持
環信Demo分為2個Target。
ChatDemo-UI3.0 默認支持支付寶版紅包SDK ChatDemo-UI3.0-JDPay 支持錢包版SDK
修改Podfile支持兩個紅包SDK版本
target 'ChatDemo-UI3.0' do
...
...
pod 'RedpacketAliAuthLib' # 支付寶版紅包SDK
end
target 'ChatDemo-UI3.0-JDPay' do
...
...
pod 'RedpacketLib' # 錢包版紅包SDK
end
四、紅包功能開關
??在ChatDemo-UI3.0-Prefix.pch文件中有如下宏定義, 注銷掉此宏定義則可以關閉紅包功能。
#define REDPACKET_AVALABLE
五、集成準備
1. 導入SDK
導入開源模塊
請在環信Demo中獲取RedpacketSDK開源部分 在工程中導入RedpacketSDK開源模塊
通過Pod更新紅包SDK
修改Podfile,如果是支付寶版SDK則加入pod 'RedpacketAliAuthLib' 如果是錢包版SDK則加入pod 'RedpacketLib'
2.通過環信APPKey配置商戶信息
修改文件Appdelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
...
...
#ifdef REDPACKET_AVALABLE
/**
* TODO: 通過環信的AppKey注冊紅包
*/
[[RedPacketUserConfig sharedConfig] configWithAppKey:EaseMobAppKey];
#endif
...
...
六、聊天頁面實現發紅包
用帶有收發紅包功能的RedPacketChatViewController替換EaseUI的ChatViewController
七、零錢頁(錢包版SDK)或者紅包記錄頁(支付寶版SDK)
支付寶版為紅包記錄 錢包版為零錢頁 在SettingsViewController.m中增加此功能
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
...
#ifdef REDPACKET_AVALABLE
if (indexPath.section == 0) {
cell.textLabel.text = @"零錢";
#ifdef AliAuthPay
cell.textLabel.text = @"紅包記錄";
#endif
}else if (indexPath.section == 1) {
#else
if (indexPath.section == 0) {
#endif
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
#ifdef REDPACKET_AVALABLE
if (indexPath.section == 0) {
/** 如果是錢包版SDK則是零錢頁,如果是支付寶版SDK則是紅包記錄頁*/
[RedpacketViewControl presentChangePocketViewControllerFromeController:self];
return;
}
#endif
...
...
消息處理
修改文件ChatDemoHelper.m
監聽消息
- (void)initHelper
{
#ifdef REDPACKET_AVALABLE
[[RedPacketUserConfig sharedConfig] beginObserveMessage];
#endif
...
...
}
屏閉紅包被搶消息的通知
#ifdef REDPACKET_AVALABLE
/**
* 屏蔽紅包被搶消息的提示
*/
NSDictionary *dict = message.ext;
needShowNotification = (dict && [dict valueForKey:RedpacketKeyRedpacketTakenMessageSign]) ? NO : needShowNotification;
#endif
后記
未完,待續~~~