Android 支付宝支付

1、导入依赖

    //支付宝支付
    //https://opendocs.alipay.com/open/204/105296
    implementation 'com.alipay.sdk:alipaysdk-android:+@aar'

2、支付工具类

PayUtil.alipay(this, "哪种方式支付');

/**
 * 支付工具类
 */
public class PayUtil {
    private static final String TAG = "PayUtil";

    /**
     * 支付宝支付
     * 支付宝官方开发文档:https://docs.open.alipay.com/204/105295/
     *
     * @param activity
     * @param data
     */
    public static void alipay(Activity activity, String data) {
        //创建运行对象
        Runnable runnable = new Runnable() {
            /**
             * 子线程执行
             */
            @Override
            public void run() {
                //创建支付宝支付任务
                PayTask alipay = new PayTask(activity);

                //支付结果
                Map<String, String> result = alipay.payV2(data, true);

                //解析支付结果
                PayResult resultData = new PayResult(result);

                //发布状态
                EventBus.getDefault().post(new AlipayStatusChangedEvent(resultData));
            }
        };

        //创建一个线程
        Thread thread = new Thread(runnable);

        //启动线程
        thread.start();
    }
}

3、支付宝解析结果

/**
 * 支付宝支付结果解析类
 * 目的是将Map参数解析到对象
 * 可以不用该类
 * 该类来自支付宝支付Demo
 */
public class PayResult {
    private String resultStatus;
    private String result;
    private String memo;

    public PayResult(Map<String, String> rawResult) {
        if (rawResult == null) {
            return;
        }

        for (String key : rawResult.keySet()) {
            if (TextUtils.equals(key, "resultStatus")) {
                resultStatus = rawResult.get(key);
            } else if (TextUtils.equals(key, "result")) {
                result = rawResult.get(key);
            } else if (TextUtils.equals(key, "memo")) {
                memo = rawResult.get(key);
            }
        }
    }

    @Override
    public String toString() {
        return "resultStatus={" + resultStatus + "};memo={" + memo
                + "};result={" + result + "}";
    }

    /**
     * @return the resultStatus
     */
    public String getResultStatus() {
        return resultStatus;
    }

    /**
     * @return the memo
     */
    public String getMemo() {
        return memo;
    }

    /**
     * @return the result
     */
    public String getResult() {
        return result;
    }

}

4、支付宝支付状态改变

/**
 * 支付宝支付状态改变了事件
 */
public class AlipayStatusChangedEvent {
    /**
     * 支付状态
     */
    private PayResult data;

    public AlipayStatusChangedEvent(PayResult data) {
        this.data = data;
    }

    public PayResult getData() {
        return data;
    }

    public void setData(PayResult data) {
        this.data = data;
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值