Androidstudio支付宝集成

                         I MISS YOU !

 

使用环境: 

              需要用到支付的地方

使用方法:

1 copy  jar包

 1 

2 copy支付工具类:

/**
 * Created by SensYang on 2018/09/08 14:24
 */
public class AliPayUtil {
    private static AliPayUtil instance;
    //支付结果回调接口
    private PayStateCallback payStateCallback;
    private Activity activity;

    /**
     * 设置支付结果监听
     */
    public AliPayUtil setPayStateCallback(PayStateCallback payStateCallback) {
        this.payStateCallback = payStateCallback;
        return this;
    }

    private AliPayUtil() {
    }

    public static AliPayUtil getInstance(Activity activity, PayStateCallback payStateCallback) {
        if (instance == null) {
            instance = new AliPayUtil();
        }
        instance.setActivity(activity);
        instance.setPayStateCallback(payStateCallback);
        return instance;
    }

    private void setActivity(Activity activity) {
        this.activity = activity;
    }

    /**
     * 调用支付宝SDK支付
     *
     * @param orderstr 编码后的订单信息
     */
    public void startPay(String orderstr) {
        if (CommonUtils.isFastDoubleClick()){return;}
        new PayThread(orderstr).start();
    }

    class PayThread extends Thread {
        String orderstr;

        public PayThread(String orderstr) {
            this.orderstr = orderstr;
        }

        @Override
        public void run() {
            // 构造PayTask 对象
            PayTask alipay = new PayTask(activity);
            String result = alipay.pay(orderstr, true);
            // 调用支付接口,获取支付结果
            payStateCallBack(result);
        }
    }

    private void payStateCallBack(String result) {
        AliPayResult aliPayResult = new AliPayResult(result);
        /**
         * 同步返回的结果必须放置到服务端进行验证(验证的规则请看
         * https://doc.open.alipay.com/doc2/detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&docType=1
         * ) 建议商户依赖异步通知
         *  服务端验证安全
         */
        //        String resultInfo = aliPayResult.getResult();// 同步返回需要验证的信息

        String resultStatus = aliPayResult.getResultStatus();
        // 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档
        if (TextUtils.equals(resultStatus, "9000")) {
            //ToastUtil.showToast("支付成功");
            if (payStateCallback != null) {
                payStateCallback.onPaySuccess(activity.getString(R.string.pay_success));
            }
        } else {
            // 判断resultStatus 为非"9000"则代表可能支付失败
            // "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
            if (TextUtils.equals(resultStatus, "8000")) {
                //ToastUtil.showToast("支付结果确认中");
                if (payStateCallback != null) {
                    payStateCallback.onPayWatting(activity.getString(R.string.pay_waiting));
                }
            } else if (TextUtils.equals(resultStatus, "6001")) {
                //ToastUtil.showToast("支付结果确认中");
                if (payStateCallback != null) {
                    payStateCallback.onPayFailed(activity.getString(R.string.pay_cancle));
                }
            } else if (TextUtils.equals(resultStatus, "4000")) {
                if (payStateCallback != null) {
                    payStateCallback.onPayFailed(activity.getString(R.string.none_ali));
                }
            } else {
                // 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误
                //ToastUtil.showToast("支付失败");
                if (payStateCallback != null) {
                    payStateCallback.onPayFailed(activity.getString(R.string.pay_fail));
                }
            }
        }
    }
}

payStateCallback

  请单独创建一个类

/**
 * Created by SensYang on 2018/09/08 14:28
 */

public interface PayStateCallback {
    /**
     * 支付成功
     */
    void onPaySuccess(String describe);

    /**
     * 支付结果确认中
     */
    void onPayWatting(String describe);

    /**
     * 支付失败
     */
    void onPayFailed(String describe);
}

 

3 发送支付的数据给后台,接收后台返回值,并调用支付宝进行支付:

 AliPayUtil.getInstance((Activity) mcontext, orderCallback).startPay(alipayBean.getData());

 

 private PayStateCallback orderCallback = new PayStateCallback() {
        @Override
        public void onPaySuccess(String describe) {
            //支付成功的处理
            ToastUtils.showToast(mcontext,"支付成功");
        }

        @Override
        public void onPayWatting(String describe) {

        }

        @Override
        public void onPayFailed(String describe) {
            //支付失败的处理
            ToastUtils.showToast(mcontext,"支付失败");
        }
    };

 

         好了,现在的支付宝支付就是这么简单。

     如果有什么需要讨论的请添加QQ群:88627109

                           欢迎您的光临!

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值