Android 集成支付宝支付

本文详细介绍如何在Android项目中集成支付宝支付SDK,包括添加依赖、配置目录、申请权限、设置仓库等步骤,并提供通过订单ID调用支付接口的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面的步骤查看https://blog.youkuaiyun.com/sunshine_0707/article/details/85272568

第一步:添加jar包到libs文件夹下

  2.在APP工程的build.gradle中配置jniLibs的目录

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
}  

3.添加gradle依赖

//支付宝支付新版
implementation(name: 'alipaySdk-15.6.2-20190416165036', ext: 'aar')
//支付宝支付旧版
// implementation files('libs/alipaySdk-20170922.jar')

4.添加权限

android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE

   5.在项目的主build.gradle不是app下的build.gradle的allprojects 下添加

allprojects {
    repositories {
        google()
        jcenter()

        //集成阿里推送添加的
        maven {
            url 'http://maven.aliyun.com/nexus/content/repositories/releases/'
        }
        //集成支付宝添加的
        flatDir {
            dirs 'libs'
        }
        maven { url 'https://dl.bintray.com/umsdk/release' } //友盟统计
        maven { url 'https://jitpack.io' }
    }
}

  6.通过订单id获取到订单的详情,将订单的详情作为参数,调起支付宝支付

void aLiPay(final String orderInfo, final Context context, final PreAuthorizedPaymentContract.PreAuthorizedPaymentReasonListener preAuthorizedPaymentReasonListener, final PreAauthorizedPaymentService preAauthorizedPaymentService, final String id, final PreAuthorizedPaymentContract.PreAuthorizedPaymentSerachReasonListener preAuthorizedPaymentSerachReasonListener) {
    //阿里预授权支付
    Runnable payRunnable = new Runnable() {
        @Override
        public void run() {
            if (context != null) {
                PayTask alipay = new PayTask((Activity) context);
                Map<String, String> result = alipay.payV2(orderInfo, true);
                if (result.get("resultStatus") != null && !"".equals(result.get("resultStatus").toString())) {
                    switch (result.get("resultStatus").toString()) {
                        case "4000":
                            if (preAuthorizedPaymentReasonListener != null)
                                preAuthorizedPaymentReasonListener.onResponse("订单支付失败");
                            break;
                        case "5000":
                            if (preAuthorizedPaymentReasonListener != null)
                                preAuthorizedPaymentReasonListener.onResponse("请勿重复操作");
                            break;
                        case "6001":
                            if (preAuthorizedPaymentReasonListener != null)
                                preAuthorizedPaymentReasonListener.onResponse("操作已取消");
                            break;
                        case "6002":
                            if (preAuthorizedPaymentReasonListener != null)
                                preAuthorizedPaymentReasonListener.onResponse("网络连接出错");
                            break;
                        case "6004":
                            if (preAuthorizedPaymentReasonListener != null)
                                preAuthorizedPaymentReasonListener.onResponse("正在处理中,请稍后在订单详情查看支付结果");
                            Constants.WEI_XIN_PAY_RESULT = 0;
                            Constants.WEI_XIN_PAY_RESULT = 3;
                            aLiPaySuccess(id, preAuthorizedPaymentSerachReasonListener);
                            break;
                        case "8000":
                            if (preAuthorizedPaymentReasonListener != null)
                                preAuthorizedPaymentReasonListener.onResponse("支付结果未知,请稍后在订单详情查看支付结果");
                            Constants.WEI_XIN_PAY_RESULT = 0;
                            Constants.WEI_XIN_PAY_RESULT = 3;
                            aLiPaySuccess(id, preAuthorizedPaymentSerachReasonListener);
                            break;
                        case "9000":
                            if (preAuthorizedPaymentReasonListener != null)
                                preAuthorizedPaymentReasonListener.onResponse("支付成功");
                            Constants.WEI_XIN_PAY_RESULT = 0;
                            Constants.WEI_XIN_PAY_RESULT = 3;
                            aLiPaySuccess(id, preAuthorizedPaymentSerachReasonListener);
                            break;
                        case "其它":
                            if (preAuthorizedPaymentReasonListener != null)
                                preAuthorizedPaymentReasonListener.onResponse("其他支付错误");
                            break;
                        default:
                            break;
                    }
                }
            } else {
                if (preAuthorizedPaymentReasonListener != null)
                    preAuthorizedPaymentReasonListener.onFail("网络错误");
            }
        }
    };
    // 必须异步调用
    Thread payThread = new Thread(payRunnable);
    payThread.start();
}

这是测试服务器的,订单金额方便测试

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值