android支付宝支付工具类
来源:互联网 发布:python循环读取文件 编辑:程序博客网 时间:2024/06/05 02:35
package com.omi.utils.pay;import android.app.Activity;import android.text.TextUtils;import com.alipay.sdk.app.PayTask;import com.omi.R;import com.omi.utils.CommonUtils;/** * Created by SensYang on 2016/6/15 0015. */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)); } } } }}
调用的时候:
AliPayUtil.getInstance(RechargePhoneActivity.this, payStateCallback).startPay(orderstr);
回调:
//购物支付的回调private PayStateCallback orderCallback = new PayStateCallback() { @Override public void onPaySuccess(String describe) { ToastUtil.showToast("支付成功"); } @Override public void onPayWatting(String describe) { } @Override public void onPayFailed(String describe) { ToastUtil.showToast("支付失败"); }};
payStateCallback的类:
package com.omi.utils.pay;/** * 支付结果回调接口 * Created by SensYang on 2016/6/15 0015. */public interface PayStateCallback { /** * 支付成功 */ void onPaySuccess(String describe); /** * 支付结果确认中 */ void onPayWatting(String describe); /** * 支付失败 */ void onPayFailed(String describe);}
0 0
- android支付宝支付工具类
- 调用支付宝支付的工具类
- android支付宝支付
- Android 支付宝【支付】
- android 支付宝支付
- Android 支付宝支付
- Android支付宝支付
- android支付宝支付
- Android-支付宝支付
- Android支付宝支付
- Android支付宝支付
- Android 支付宝支付
- Android支付之支付宝封装类
- Android支付封装支付宝支付
- Android支付之支付宝支付(一)
- android接入原生的支付宝支付(真的灰常简单,工具类)
- Android-支付宝快捷支付
- android 支付宝快捷支付
- 安卓高仿IOS按钮
- 软件设计原则(七)合成/聚合复用原则(Composite/Aggregate Reuse Principle,CARP)
- 一分钟了解JAVA代理模式
- 用sqlplus和plsql无法连接Oracle数据库系统问题
- CoreGraphics,QuartzCore, CoreAnimation
- android支付宝支付工具类
- java中的类成员
- xcode 蓝色与黄色文件夹
- redis获取不到连接
- 新的开始
- 静态ip--dns
- 【IT软技能】Sublime 下载+激活+快捷键
- jquery 键盘操作解析与模拟
- SpringBoot AOP 记录WEB请求日志