支付相关
3.2.1 方法说明
在需要支付的地方调用下面方法:
public void onPay(View v) {
BadamSdk.getInstance().pay(this,mAppOrder,mAmount,mGoodsName,mUserData,mOpenId,new PayResultListener(){
@Override
public void onPayResult(String orderId, int result, int errorCode, String message) {
String text = String.format(Locale.CHINESE, "%d - %s - %s", result, message, orderId);
Utils.showToast(PayActivity.this, text);
}
});
}
支付时需要提供的参数及其意义请参考下表:
- mAppOrder : 每次支付行为的订单号。用于三方通信,当Badam服务器确认 付成功之后,将会携带该参数向客户服务发送成功响应,详情参考服务端接 指南。
- mAmount : 支付金额,单位为分,建议为200、400、600等200的整数值。
- mGoodsName :商品名称, 用于支付界面显示。
- mUserData :客户端透传参数, 付完成时将会下发给客户服务端。
- mOpenId: mOpenId是户唯标识登陆或注册成功之后SDK会返回给客户端。
3.2.2 回调说明
在支付时需要传递PayResultListener实例,用于接收支付结果: PayResultListener回调方法的第一个参数【orderId】为支付系统订单id,可能为空,该订单id主要用于排除错误原因。第二个参数【result】参数表示支付结果,取值包含:
取值 | 含义 |
---|---|
ErrorCode.PAY_FAIL | 支付失败 |
ErrorCode.PAY_SUCCESS | 支付成功 |
ErrorCode.PAY_CANCELLED | 用户取消支付 |
WEB端支付回调接口,用户应该在支付的Activity的onActivityResult方法中回调下面方法,如果没有正确回调该方法可能导致无法正常支付:
public static void onActivityResult(int requestCode, int resultCode, Intent data) {
BadamSdk.getInstance().onActivityResult(requestCode, resultCode, data);
}
3.2.3 生命周期说明
在支付行为的Activity中调用支付功能后,重写相应的生命周期onPause()、onResume()、onDestroy()方法:
@Override
protected void onPause() {
super.onPause();
mPayInterface.onPause(this);
}
@Override
protected void onResume() {
super.onResume();
mPayInterface.onResume(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
mPayInterface.onDestroy(this);
}
其中mPayInterface为在Activity中定义的全局变量:
PayListener mPayInterface = BadamSdk.getInstance();