之前写了一篇关于支付宝支付的文章Android支付——支付宝支付总结。最近写项目的时候发现不能这样写了,当我在两个地方调用支付宝的时候,支付成功的时候只能跳转一个页面,但是我需要支付成功的时候跳转到不同的页面。于是就有下面的改进了。
1.在AlipayPay添加回调监听
自定义一个监听接口。
private OnPayListener onPayListener;// 设置支付监听
// 设置支付结果监听器
public interface OnPayListener {
/** 支付成功 */
public void success();
/** 支付结果确认中 */
public void confirmResults();
/** 支付失败 */
public void failure();
}
在原来的结果中添加监听回调方法
// 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档
if (TextUtils.equals(resultStatus, "9000")) {
onPayListener.success();// 成功回调通知
} else {
// 判断resultStatus 为非“9000”则代表可能支付失败
// “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
if (TextUtils.equals(resultStatus, "8000")) {
onPayListener.confirmResults();// 支付结果确认中
} else {
onPayListener.failure();// 失败回调通知
// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误
}
}
2.修改调用方法
在调用支付的地方添加一个监听方法。
AlipayPay alipayPay = new AlipayPay(context, "订单号",new OnPayListener() {
@Override
public void success() {
//支付成功
finish();
}
@Override
public void confirmResults() {
//支付结果确认中
}
@Override
public void failure() {
//支付失败
}
});
alipayPay.pay("orderstr", "商品详情","money");