对于支付宝支付 - 我是这样做的

关于支付宝支付,不得不说,对于程序猿来说是最简单的支付方式(对于某信,某联来说)

准备工作 放入jar包等, 清单配置文件需要添加com.alipay.sdk.app.H5PayActivity

不多说,直接上代码......

/**
* 调起支付宝  需要的参数要从后台获取(安全考虑)
* @param string
*/
private void requstAlipay(final String string){
new Thread(){
public void run() {
// 构造PayTask 对象
PayTask alipay = new PayTask(mContext);
// 调用支付接口,获取支付结果
Log.i("支付string",""+string);
String result = alipay.pay(string, true);


Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
Log.i("输出内容",result.toString()+"");
mHandler.sendMessage(msg);
};
}.start();
}


private Handler mHandler = new Handler() {
public 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 resultStatus = payResult.getResultStatus();
// 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档
if (TextUtils.equals(resultStatus, "9000")) {
Toast.makeText(mContext, "支付成功", Toast.LENGTH_SHORT).show();
} else {
// 判断resultStatus 为非"9000"则代表可能支付失败
// "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
if (TextUtils.equals(resultStatus, "8000")) {
Toast.makeText(mContext, "支付结果确认中", Toast.LENGTH_SHORT).show();
} else {
// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误
Toast.makeText(mContext, "支付失败", Toast.LENGTH_SHORT).show();
}
}
break;
}
default:
break;
}
};
};


对于支付宝来说,支付还是很简单的,没有包名和一些其他限制,直接运行就可以测试,

如果还是不能支付(我还没遇到过) 百度搜索吧




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值