支付宝支付(以后肯定用的上)
支付宝可用demo下载地址
根据官方的文档我们会需要下面几个参数
// 商户PIDpublic static final String PARTNER = "";// 商户收款账号public static final String SELLER = "";// 商户私钥,pkcs8格式public static final String RSA_PRIVATE = "";// 支付宝公钥 需要上传到alipublic static final String RSA_PUBLIC = "";
准备工作做好了,接下来就是开发了。先把支付宝jar包导进去,然后需要在manifest注册一一下
"com.alipay.sdk.app.H5PayActivity" android:configChanges="orientation|keyboardHidden|navigation|screenSize"
android:exported="false"
android:screenOrientation="behind" android:windowSoftInputMode="adjustResize|stateHidden" >
还有一些权限需要申请的
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
把支付宝demo中的类拷贝到自己的项目中
下一步就是通过线程调起支付了,请注意,这里签名都是在本地,私钥都是放在本地,实际开发中都是要在服务端完成的。
/*** 支付宝支付异步任务* * @author Simon*/private class AliPayThread extends Thread {@Overridepublic void run() {String result = AlipayAPI.pay(MainActivity.this, "测试的商品","测试商品的详细描述", "0.01");Message msg = new Message();msg.what = SDK_PAY_FLAG;msg.obj = result;mHandler.sendMessage(msg);}}
支付的结果
private Handler mHandler=new Handler(){@Overridepublic void handleMessage(Message msg) {switch (msg.what) {case SDK_PAY_FLAG: {PayResult payResult = new PayResult((String) msg.obj);/*** 同步返回的结果必须放置到服务端进行验证(验证的规则请看https://doc.open.alipay.com/doc2/* detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&* docType=1) 建议商户依赖异步通知*/String resultInfo = payResult.getResult();// 同步返回需要验证的信息String resultStatus = payResult.getResultStatus();// 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档if (TextUtils.equals(resultStatus, "9000")) {Toast.makeText(MainActivity.this, "支付成功",Toast.LENGTH_SHORT).show();} else {// 判断resultStatus 为非"9000"则代表可能支付失败// "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)if (TextUtils.equals(resultStatus, "8000")) {Toast.makeText(MainActivity.this, "支付结果确认中",Toast.LENGTH_SHORT).show();} else {// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误Toast.makeText(MainActivity.this,"支付失败" + resultStatus, Toast.LENGTH_SHORT).show();}}break;}}};};
下面贴出整个代码
运行下,就可以调起支付宝了。
demo版,可以在官网进行下载
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
