之前寫了一篇關於支付寶支付的文章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");