红包接入文档

使用说明

  • 该文档针对studio集成,若您使用的是eclipse开发工具,请参照studio2eclipse文档把该项目转化成eclipse项目。
  • 演示Demo JrmfPublishLibs中包含该module,您可以运行JrmfPublishLibs查看效果。
  • Support­v4­21 以上。

产品功能说明

金融魔方红包依赖库是一款实现App快速集成发单聊红包、发群聊红包、拆红包并查看交易记录等功能的库。该类库支持支付宝、微信第三方付款,类库中已经引入了支付宝和微信的jar包,您只需要在您的Manifest文档中配置支付宝和微信的参数信息即可,下面会有详细介绍。
 

集成步骤

 
1. 把jrmfbaselib 和jrmfrplib以module的形式导入您的项目中,点击File­>New­>import module,打开如下页面:
 
2. 选择路径,找到下载好的jrmfbaselib,jrmfrplib点击finish,把这两个库分别导入到您的工程中。
 
3. jrmfbaselib包含了金融魔方所有产品共同的工具类、自定义view等内容,故jrmfrplib必须依赖jrmfbaselib

使用详解

渠道配置

渠道和红包名字配置:渠道是我司给客户分配的唯一识别id;红包名字为用户发红包时显示的名称,客户根据自己的需求来命名。
注意:如果您使用了其它金融魔方的产品,已经配置了渠道id,就无需再配置了
 
  • <!‐‐金融魔方渠道,JrmfPublishLibs中使用的渠道ID为closedbate,请您尽快申请属于您公司的渠道ID‐‐> 
  • <meta‐data 
  • android:name="JRMF_PARTNER_ID" 
  • android:value="closedbate"/>
  • <meta‐data 
  • android:name="JRMF_PARTNER_NAME" 
  • android:value="测试红包"/> 

初始化项目 

您需要在您自定义的Application中初始化金融魔方的类库,示例代码如下: 
  • public class MyApplication extends Application {
  • @Override 
  • public void onCreate() { 
  • super.onCreate(); 
  • //设置为测试环境
  • JrmfClient.isDebug(true); 
  • /** 
  • * 需要在Manifest.xml文件中初始化渠道id(JRMF_PARTNER_ID)和红包名称(JRMF_PARTNER_NAME) 
  • */ 
  • JrmfClient.init(this); 
  • /** 
  • * 初始化项目,同时传入渠道id(JRMF_PARTNER_ID)和 
  • * 红包名称(JRMF_PARTNER_NAME) 
  • * 如果在Manifest.xml文件中配置了渠道id和红包名称 
  • * 请使用上面的方法初始化项目
  • */
  • //JrmfClient.init(this,"closedbate","测试红包"); 
  • }}

功能介绍 

发单个红包、发群聊红包、转账、转账收款、转账退款、抢单聊红包、抢群红包,查看交易记录以及更新用户信息(头像和昵称)功能都由JrmfRpClient提供。 

红包功能

发群红包
  •   /** 
  • * 打开发送群组红包界面 
  • * @param context 
  • * 【必传】上下文对象 
  • * @param targetId 
  • * 【必传】目标ID(会话ID) 
  • * @param userid 
  • * 【必传】用户ID|当前用户ID 
  • * @param thirdToken 
  • * 【必传】三方签名令牌(服务端计算后给到app,服务端算法为md5(custUid+appsecret))
  • * @param groupNum 
  • * 【必传】群组人数
  • * @param username 
  • * 【可为NULL或""】用户昵称 
  • * @param usericon 
  • * 【可为NULL或""】用户头像URL 
  • * @param requestCode
  • *【必传】在onActivityResult方法中回调 
  • */
  • public static void sendGroupEnvelopeForResult(Context context, String targetId, String userid, String thirdToken, int groupNum, String username, String usericon, int requestCode);
发单聊红包 
  • /** 
  • * 打开发送单聊红包界面 
  • * @param context 
  • * 【必传】上下文对象 
  • * @param targetId 
  • * 【必传】目标ID(单聊会话ID) 
  • * @param userid 
  • * 【必传】用户ID|当前用户ID 
  • * @param thirdToken 
  • * 【必传】三方签名令牌(服务端计算后给到app, 
  • 服务端算法为md5(custUid+appsecret)) 
  • * @param username 
  • * 【可为NULL或""】用户昵称 
  • * @param usericon 
  • * 【可为NULL或""】用户头像URL 
  • * @param requestCode 
  • * 【必传】在onActivityResult方法中回调 
  • */
  • public static void sendSingleEnvelopeForResult(Context context, String targetId, String userid, String thirdToken, String username, String usericon, int requestCode)
抢群红包 
  • /** 
  • * 抢群红包  
  • * @param activity 
  • * [必传] 上下文 
  • * @param userid 
  • * [必传] 用户id 
  • * @param thirdToken 
  • * [必传]三方签名令牌(服务端计算后给到app, 
  • 服务端算法为md5(custUid+appsecret)) 
  • * @param username 
  • * [可为空] 用户姓名 
  • * @param usericon 
  • * [可为空] 用户头像 
  • * @param envelopeId 
  • * [必传] 红包id
  • *@param callBack 
  • * [必传] 抢红包回调接口 
  • */
  • public static void openGroupRp(FragmentActivity activity, String userid, String thirdToken, String username, String usericon,String envelopeId,GrabRpCallBack callBack);
抢单聊红包
  • /** 
  • * 打开单聊红包 
  • * @param activity 
  • * [必传] 上下文 
  • * @param userid 
  • * [必传] 用户id 
  • * @param thirdToken 
  • * [必传]三方签名令牌(服务端计算后给到app, 
  • 服务端算法为md5(custUid+appsecret)) 
  • * @param username 
  • * [可为空] 用户姓名 
  • * @param usericon
  • * [可为空] 用户头像 
  • * @param envelopeId 
  • * [必传] 红包id 
  • * @param callBack 
  • * [必传] 抢红包回调接口 
  • */ 
  • public static void openSingleRp( FragmentActivity activity,
  •  
  • String userid, String thirdToken, String username, String usericon, String envelopeId, GrabRpCallBack callBack) 
查看红包详情(只针对群红包使用)
  • /** 
  • * 打开红包详情,只针对群红包使用 
  • * @param fromActivity 
  • * [必传] 上下文 
  • * @param userId 
  • * [必传] 用户id 
  • * @param thirdToken 
  • * [必传]三方签名令牌(服务端计算后给到app, 
  • 服务端算法为md5(custUid+appsecret)) 
  • * @param rpId 
  • * [必传] 红包id
  • *@param username 
  • * [可为空] 用户昵称
  • * @param usericon
  • * [可为空] 用户头像 
  • */
  • public static void openRpDetail(Activity fromActivity, 
  • String userId, String thirdToken, String rpId, String username, String usericon); 
抢红包的回调接口 GrabRpCallBack 
  • @Override 
  • public void grabRpResult(GrabRpBean rpStatus) { 
  • int envelopeStatus = rpStatus.getEnvelopeStatus(); ToastUtil.showNoWaitToast(mContext,"红包状态:"+envelopeStatus); 
  • if (rpStatus.isHadGrabRp()){ 
  • if (grabRpBean.getHasLeft() == 0) { 
  • // 抢到了最后一个红包 
  • } else { 
  • // 抢到了一个红包 
  • ToastUtil.showToast(mContext, "抢到了一个红包"); 
转账功能
进入转账页面 
  • /** 
  • * 打开转账页面 
  • * @param activity 
  • * 【必传】上下文对象 
  • * @param targetId 
  • * 【必传】目标ID(用户ID) 
  • * @param userid
  • * 【必传】用户ID|当前用户ID 
  • * @param thirdToken 
  • * 【必传】三方签名令牌(服务端计算后给到app, 服务端算法为md5(custUid+appsecret)
  • * @param username
  • * 【可为NULL或""】当前用户昵称 
  • * @param usericon 
  • * 【可为NULL或""】当前用户头像URL 
  • * @param recUserName 
  • * 【可为NULL或""】目标用户昵称 
  • * @param recUserIcon 
  • * 【可为NULL或""】目标用户头像URL 
  • * @param requestCode
  • * 【必传】
  • */ 
  • public static void transAccountForResult(final Activity activity, final String targetId, final String userid, final String thirdToken, final String username, final String usericon,final String recUserName, final String recUserIcon, final int requestCode) 
打开转账详情页面
  • /** 
  • * 打开转账详情 
  • * @param activity 
  • * 上下文
  • * @param userid
  • * @param thirdToken 
  • * 【必传】三方签名令牌(服务端计算后给到app, 
  • * 服务端算法为md5(custUid+appsecret) 
  • * @param transferOrder 
  • * 【必传】转账单号 
  • * @param transCallBack
  • * 【必传】转账回调接口 
  • */ 
  • public static void openTransDetail(Activity activity, String userid, String thirdToken, String transferOrder, TransAccountCallBack transCallBack)
 
转账退款和确认收款回调接口 
  • JrmfRpClient.openTransDetail(this,USER_ID,thirdToken,MainActivity. 
  • transAccountBean.getTransferOrder(), new TransAccountCallBack() { 
  • @Override 
  • public void transResult(TransAccountBean transAccountBean) { if ("1" == transAccountBean.getTransferStatus()){ 
  • //确认收钱 
  • ToastUtil.showToast(RedPacketActivity.this,"确认收钱成功"); }else if ("2" == transAccountBean.getTransferStatus()){ 
  • //退款 
  • ToastUtil.showToast(RedPacketActivity.this,"退款成功"); 
  • }); 
  • TransAccountBean:有下面四个属性: 
  • transferOrder; // 转账单号 
  • transferDesc; // 转账描述 
  • transferAmount; // 转账金额;
  • transferStatus; // 0:发起转账 1:已收款 2:退还
发红包和转账的回调
 
发红包和转账都通过请求码在onActivityResult中处理回调
  • /** 
  • * 发红包成功的回调 
  • * @param requestCode 
  • * @param resultCode
  • * @param data 
  • */ 
  • @Override
  • protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
  • super.onActivityResult(requestCode, resultCode, data); switch (requestCode) {
  • case SEND_GROUP: 
  • if (resultCode == RESULT_OK) { 
  • groupRpBean = JrmfRpClient.getEnvelopeInfo(data); 
  • }
  • break; 
  • case SEND_SINGLE: 
  • // 发了单聊红包 
  • if (resultCode == RESULT_OK) { 
  • singleRpbean = JrmfRpClient.getEnvelopeInfo(data); 
  • break; 
  • case TRANS_ACCOUNT: 
  • //转账 
  • if (resultCode == RESULT_OK){ 
  • MainActivity.transAccountBean = 
  • JrmfRpClient.getTransAccountBean(data); 
  • ToastUtil.showLongToast(RedPacketActivity.this,"转账成功"); 
  • break; 
  • } } 
  • 发红包成功过后会得到EnvelopeBean,包含下面三个属性: 
  • envelopesID         红包id 
  • envelopeMessage 红包祝福语[例如:恭喜发财,大吉大利]
  • envelopeName           红包名字
  • 转账成功后会得到TransAccountBean:有下面四个属性: 
  • transferOrder; // 转账单号 
  • transferDesc; // 转账描述 
  • transferAmount; // 转账金额; 
  • transferStatus; // 0:发起转账 1:已收款 2:退还
查看交易记录 
查看交易记录接口,如果您集成了钱包则无需使用该接口,因为钱包中有此功能
  • /** 
  • * 打开查看交易记录 
  • * @param fromActivity 
  • * [必传] 上下文 
  • * @param userId 
  • * [必传] 用户id 
  • * @param thirdToken 
  • * [必传]三方签名令牌(服务端计算后给到app, 
  • 服务端算法为md5(custUid+appsecret)) 
  • */ 
  • public static void openTradeHistory(Activity fromActivity, String userId, String thirdToken);  
更新用户信息 
当您的用户昵称或者头像发生改变请调用该方法 
该方法添加了回调接口,用户可以根据接口返回的model直接判断用户信息是否更新成功;
  • /** 
  • * 更新用戶信息接口 此接口需要开发者自己回调处理
  • * @param custUid 
  • * 【必传】用户ID|当前用户ID 
  • * @param thirdToken 
  • * 【必传】三方签名令牌(服务端计算后给到app, 服务端算法为md5(custUid+appsecret)) 
  • * @param nickName 
  • * 【必传】将要更新的用户昵称
  • *@param avatar 
  • * 【必传】将要更新的用户头像URL
  • */ 
  • JrmfRpClient.updateUserInfo(USER_ID, MainActivity.thirdToken, 
  • USER_NAME_UPDATE, USER_ICON, new OkHttpModelCallBack<BaseModel>() { @Override 
  • public void onSuccess(BaseModel baseModel) { 
  • if (baseModel.isSuccess()) { 
  • ToastUtil.showToast(RedPacketActivity.this, 
  • "更新用户信息成功"); 
  • } else { ToastUtil.showToast(RedPacketActivity.this, "更新用户信息失败:" + baseModel.respmsg); 
  • } } 
  • @Override 
  • public void onFail(String result) { 
  • ToastUtil.showToast(RedPacketActivity.this, 
  • "更新用户信息失败"); 
  • });
其它功能
如果您的账号被登出或者其它场景需要关闭所有已经打开的Activity的情况,您可以调用如下方法去关闭我们 
sdk中的Activity CusActivityManager.getInstance().finishAllActivity(); 好啦,所有的功能介绍完了,而且demo中还有详细的使用方式,大家可以打开看看。