- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Android培训教程支付宝支付功能封装实现-北京尚学堂android培训机构
北京尚学堂提供
在做Android支付的时候肯定会用到支付宝支付, 根据官方给出的demo做起来非常费劲,所以我们需要一次简单的封装。封装的代码也很简单,就是将官网给的demo提取出一个类来方便使用。
/**
* 支付宝支付
*
* @author lenovo
public class Alipay {
// 商户PID
public static final String PARTNER = 123456789;
// 商户收款账号
public static final String SELLER = qibin0506@;
// 商户私钥,pkcs8格式
public static final String RSA_PRIVATE = rsa_private;
// 支付宝公钥
public static final String RSA_PUBLIC = rsa_public;
private static final int SDK_PAY_FLAG = 1;
private WeakReferenceActivity mActivity;
private OnAlipayListener mListener;
public Alipay(Activity activity) {
mActivity = new WeakReferenceActivity(activity);
}
@SuppressLint(HandlerLeak)
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what == 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)) {
if (mListener != null) mListener.onSuccess();
} else {
// 判断resultStatus 为非“9000”则代表可能支付失败
// “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,
// 最终交易是否成功以服务端异步通知为准(小概率状态)
if (TextUtils.equals(resultStatus, 8000)) {
if (mListener != null) mListener.onWait();
} else {
// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误
if (mListener != null) mListener.onCancel();
}
}
}
}
};
* 支付
* @param title 标题 不能为空或者“”
* @param desc 描述 不能为空或者“”
* @param price 价格 不能为空或者“”
* @param sn 商品唯一货号 不能为空或者“”
* @param url 服务器回调url 不能为空或者“”
*/
public void pay(String title, String desc, String price, String sn, String url) {
// 订单
String orderInfo = getOrderInfo(title, desc, price, sn, url);
// 对订单做RSA 签名
String sign = sign(orderInfo
文档评论(0)