首页 > 代码库 > 爱贝云计费支付功能及实现

爱贝云计费支付功能及实现

爱贝云计费支付基础功能~

*初始化SDK

1、功能介绍

首先需要您的游戏启动页面先调用该功能,在接入之前,您需要在爱贝开发者中心注册应用获得appid。此接口完成安全支付服务SDK屏幕方向的设置,登录和应用内购买接口都需要在此接口之后调用。

初始化功能主要处理应用维度数据,终端软硬件维度收集等。

2、参数说明

参数名称

类型

说明

Activity

Activity

开发者游戏启动页的Activity

sdkType

Int

支付SDK的横竖屏类型。参数如下SDKApi .PORTRAIT和SDKApi .LANDSCAPE

appid

String

应用编号

3、示例代码

1@Override 
2public voidonCreate(Bundle savedInstanceState) { 
3super.onCreate(savedInstanceState); 
4this.setContentView(R.layout.welcome); 
5  
6//调用爱贝初始化接口
7init(Activity activity,int sdkType,String appid);

*爱贝预读接口调用

1、功能简介

预读功能需要在预读启动页面调用,appid为应用在爱贝开发者中心获取。此接口放在用户点击购买之前,进行预读加载。

2、参数说明

参数名称

类型

说明

activity

Activity

调用商城的Activity

3、接口调用

1@Override 
2public voidonCreate(Bundle savedInstanceState) { 
3super.onCreate(savedInstanceState); 
4this.setContentView(R.layout.welcome); 
5  
6//调用爱贝预读接口
7SDKApi.preGettingData(Test.this);
8}

*登录接口

1、功能简介

登陆接口主要提供给用户登录功能,登录功能分为强制登录和非强制登录,isForce为判断是否强制登录的标识。强制登录是指用户必须登录才能进入收银台,非强制性登录是指用户可以直接进入收银台进行应用支付。

2、参数说明

参数名称

类型

说明

备注

activity

Activity

调用登录的Activity

 

appid

String

应用代码

见创建商品的说明

iaccountCallback

IAccountExCallback

回调接口 
   接口方法 
     onCallBack(intretcode,  String username,long uid) 
   参数 
   1.retcode 回调结果 
    IAccountExCallback.RETCODE_SUCCESS   成功 
    IAccountExCallback .RETCODE_CANCEL   取消 
    2、username 用户名称 
     6-20位的字符串

    3、uid用户编号 long型

用户登录注册完成后的回调

isForce

boolean

是否强制登录    

提供给应用的登录接口

如果是为true,则必须登录成功,否则界面一直显示。

3、示例代码:

01SDKApi.loginUI(AcconutActivity.thisnew IAccountExCallback() {
02         @Override
03public void onCallBack(int retcode, String username, long uid) {
04         if (retcode == IAccountExCallback.RETCODE_SUCCESS) {
05                   Toast.makeText(AcconutActivity.this, username + ":" + uid + "登录成功!    ",Toast.LENGTH_SHORT).show();
06     else if (retcode == IAccountExCallback.RETCODE_CANCEL) {
07  
08         else {
09  
10}
11}
12}, false);

4、状态码

对应的状态码

描述

IAccountExCallback.RETCODE_SUCCESS

登录成功

IAccountExCallback.RETCODE_CANCEL

登录支付

IAccountExCallback.RETCODE_FAIL

登录失败

*支付接口调用

1、功能简介

   支付功能主要提供用户支付功能,并且同步等待支付结果。 

2、交易流程

目前提供的支付模式为同步购买。在调用支付接口后,应用程序需要同步等待支付结果的通知。在玩家使用爱贝快捷支付,支付成功后,支付平台会通知应用程序客户端,如果应用有服务端对接,支付结果也会通知到游戏服务端的地址。具体流程如下:

具体流程

3、参数说明:

请确认下表对应的参数已经从商户自服务获取。

参数名称

类型

说明

appkey

String

应用密钥

appid

String(20)

应用代码,长度为20位的字符串,本字段不能为空

waresid

int

商品编码,本字段不能为空

以下参数请根据实际情况设定

notifyurl

String

交易结果同步回调地址。

可选字段。如果客户端不设置,那么取服务端配置同步的地址。

exorderno

String

外部订单号,长度小于50字节的字符串,本字段不能为空,且字段中不能有“&”或者“=”字符。

外部订单号作为区分订单的标志,同时作为在支付成功后,应用对支付结果签名的校验字段,关系到支付安全,请务必定义。

price

int

开放价格策略填真实兑换的金额(单位为分)。

单位为分

quantity

int

购买商品的数量

一次购买商品的数量.注意:这里是购买的商品的数量,不是金币等虚拟币的数量.一般填1

cpprivateinfo

String

商户私有信息。最大长度128

可选字段。商户私有信息在做交易结果同步的时候会回传给开发者

appuserid

String

应用的用户名

可选字段。应用内的用户名,如游戏角色名。

4、接口调用

01PayRequest payRequest = new PayRequest();
02      payRequest.addParam("notifyurl", notifyurl);
03      payRequest.addParam("appid", PayConfig.appid);
04      payRequest.addParam("waresid", waresid);
05      payRequest.addParam("exorderno", exorderno);
06      payRequest.addParam("price", price);
07      payRequest.addParam("cpprivateinfo""123456");
08      String params = payRequest.genSignedOrdingParams(PayConfig.appkey);    
09               /**
10                *  调用SDK进行支付
11                */
12  SDKApi.startPay(GoodsActivity.this, params, new IPayResultCallback() {
13      @Override
14      public void onPayResult(int resultCode, String signValue, String resultInfo) {
15         //resultInfo = 应用编号&商品编号&外部订单号
16               if (SDKApi.PAY_SUCCESS == resultCode) {
17                                  Log.e("xx""signValue = " + signValue);
18                                  if (null == signValue) {
19                                           // 没有签名值,默认采用finish(),请根据需要修改
20                                           Log.e("xx""signValue is null ");
21                                           Toast.makeText(GoodsActivity.this"没有签名值", Toast.LENGTH_SHORT).show();
22                                           // //finish();
23                                  }
24                                  Log.e("yyy", signValue + "");
25                                  if (PayRequest.isLegalSign(signValue, PayConfig.appkey)) {
26                                           Log.e("payexample""islegalsign: true");
27                                           // 合法签名值,支付成功,请添加支付成功后的业务逻辑
28                                           Toast.makeText(GoodsActivity.this"支付成功", Toast.LENGTH_SHORT).show();
29                                  else {
30                                           // 非法签名值,默认采用finish(),请根据需要修改
31                                           Toast.makeText(GoodsActivity.this"支付成功,但是验证签名失败",  
32                          Toast.LENGTH_SHORT).show();
33                                  }
34                         else if (SDKApi.PAY_CANCEL == resultCode) {
35                                  // 取消支付处理,默认采用finish(),请根据需要修改
36                                  Toast.makeText(GoodsActivity.this"取消支付", Toast.LENGTH_SHORT).show();
37                                  Log.e("fang""return cancel");
38                         else if (SDKApi.PAY_HANDLING == resultCode) {
39                                  // 支付正在处理,默认采用finish(),请根据需要修改
40                                  Toast.makeText(GoodsActivity.this"稍后返回支付结果", Toast.LENGTH_SHORT).show();
41                                  Log.e("fang""return handling");
42                         else {
43                                  // 计费失败处理,默认采用finish(),请根据需要修改
44                                  Toast.makeText(GoodsActivity.this"支付失败", Toast.LENGTH_SHORT).show();
45                                  Log.e("fang""return Error");
46                         }
47               }
48         });

5、状态码

对应的状态码

描述

SDKApi.PAY_SUCCESS

支付成功

SDKApi.PAY_CANCEL

取消支付

SDKApi.PAY_FAIL

支付失败

回调获取支付结果~>>>查看余下全文

爱贝云计费支付功能及实现