博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android支付之支付宝封装类
阅读量:6332 次
发布时间:2019-06-22

本文共 3146 字,大约阅读时间需要 10 分钟。

 

注(这是以前的支付宝支付方法,现在支付平台已经改变)

请前往:https://open.alipay.com/platform/home.htm  查看

继承支付宝支付文档:https://docs.open.alipay.com/204

新版找个时间写

 

 

今天介绍下在android中如何集成支付宝支付到自己的APP中去。让APP能够拥有方便,快捷的支付功能。

我们在做Android支付的时候肯定会用到支付宝支付,根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装。只需要一个方法调用便可实现。

如图:

 

首先,导入需要的支付宝SDK资源放入商户应用工程的libs目录下

Activity支付调用代码:

public class PayDemoActivity extends Activity {    // 商户PID    public static final String PARTNER = Keys.DEFAULT_PARTNER;    // 商户收款账号    public static final String SELLER = Keys.DEFAULT_SELLER;    // 商户私钥,pkcs8格式  ===支付宝公钥    public static final String RSA_PRIVATE = Keys.PRIVATE;    private static final int SDK_PAY_FLAG = 1;    private static final int SDK_CHECK_FLAG = 2;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.pay_external);        findViewById(R.id.pay).setOnClickListener(new OnClickListener() {            @Override            public void onClick(View v) {                // TODO Auto-generated method stub                ExternalPartner.getInstance(PayDemoActivity.this,"支付时出现的订单信息" ,"123456",                        mHandler, "0.1").doOrder();            }        });        findViewById(R.id.check).setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View v) {                // TODO Auto-generated method stub                                ExternalPartner.getInstance(PayDemoActivity.this,"物业费", "123456",                        mHandler, "0.1").check();            }        });    }                private Handler mHandler = new Handler() {        public void handleMessage(Message msg) {            switch (msg.what) {            case SDK_PAY_FLAG: {                PayResult payResult = new PayResult((String) msg.obj);                // 支付宝返回此次支付结果及加签,建议对支付宝签名信息拿签约时支付宝提供的公钥做验签                String resultInfo = payResult.getResult();                String resultStatus = payResult.getResultStatus();                // 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档                if (TextUtils.equals(resultStatus, "9000")) {                    Toast.makeText(PayDemoActivity.this, "支付成功",                            Toast.LENGTH_SHORT).show();                } else {                    // 判断resultStatus 为非“9000”则代表可能支付失败                    // “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)                    if (TextUtils.equals(resultStatus, "8000")) {                        Toast.makeText(PayDemoActivity.this, "支付结果确认中",                                Toast.LENGTH_SHORT).show();                    } else {                        // 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误                        Toast.makeText(PayDemoActivity.this, "支付失败",                                Toast.LENGTH_SHORT).show();                    }                }                break;            }            case SDK_CHECK_FLAG: {                Toast.makeText(PayDemoActivity.this, "检查结果为:" + msg.obj,                        Toast.LENGTH_SHORT).show();                break;            }            default:                break;            }        };    };}

 

 

 

你可能感兴趣的文章
人的差异在于业余时间
查看>>
Linux根目录下各个目录及作用
查看>>
【C语言】学习笔记7——指针与多维数组
查看>>
洛谷 2051 [AHOI2009] 中国象棋
查看>>
find命令
查看>>
Sass的学习
查看>>
二叉查找树
查看>>
SQL Server 阻止了对组件“xp_cmdshell”的 过程“sys.xp_cmdshell”的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。...
查看>>
JS节点操作
查看>>
C++层次遍历二叉树
查看>>
WinSockets编程(六)select模式
查看>>
Poj2245--Lotto(DFS)
查看>>
MicrosoftSQLServer数据库定时备份(备份计划)的几种方式
查看>>
java基础Synchronized关键字之对象锁
查看>>
Node js 嵌入式模板引擎 ejs 的使用
查看>>
LVS+Keepalive+Nginx实现负载均衡
查看>>
支付宝即时到账DEMO配置与使用
查看>>
oracle 12c rac vip和监听故障
查看>>
不规则ROI的提取
查看>>
算法导论系列:分治算法
查看>>