環信3.0ios客戶端的集成(十)

版本記錄

版本號 時間
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。

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

后記

未完,待續~~~

美景
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 版本記錄 前言 很多app種都集成環信做第三方信息通訊工具,這里我們就看一下環信的主要功能和集成方法。先給出環信3...
    刀客傳奇閱讀 852評論 2 2
  • 版本記錄 前言 很多app種都集成環信做第三方信息通訊工具,這里我們就看一下環信的主要功能和集成方法。先給出環信3...
    刀客傳奇閱讀 977評論 0 0
  • 小區里的路燈依然非常昏暗,現在已經是夜里9點多。廣場舞終于結束了,一群群的人沿著面前的大路走了過來。 “他們來了!...
    王團長1閱讀 344評論 1 3
  • 我們聊得很暢快 似乎雙方都有一種吸引力 在你推開門之前 我們還是陌生人 其實只需簡短的溝通 但我們卻聊了好久 從行...
    喵喵詩茵閱讀 183評論 2 2
  • 第四部分 1.孩子生病,避免把大人的擔憂和緊張帶給孩子,培養孩子對生活的樂觀和熱情是最重要的,也是治愈的基礎之一。...
    真小凝閱讀 442評論 0 1