我原本不想写这个的,但是看到网上,都是胡乱的写,我也是醉了,对于网上找到的
全是过时的,无语中,还有一小子,去官网下的源码,放到csdn里面,冲大神,就这个网址(http://download.youkuaiyun.com/detail/zongrenkou/8763845)
另外一哥们还算靠谱,就是这个网址了:https://software.intel.com/zh-cn/blogs/2015/03/05/androidandroid/utm_campaign=优快云&utm_source=intel.youkuaiyun.com&utm_medium=Link&utm_content=others-zhif),,就是有点啰嗦。
但是里面的夹包,不是最新的。最新的夹包是:
还有就是android 4.0 之后夹包是不用导入的,他会自动导入应用中的,你只要复制进来就ok了。那哥们说过的,我就不罗嗦,下面就是重点了:- 上面两个里面payDemoActivity 是重点。
里面是主要的`
public void pay(View v) {
// 订单
String orderInfo = getOrderInfo("测试的商品", "该测试商品的详细描述", "0.01");
这个里面就是我们传的产品内容。怎么传值,我就不多说了,
// 对订单做RSA 签名
String sign = sign(orderInfo);
try {
// 仅需对sign 做URL编码
sign = URLEncoder.encode(sign, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// 完整的符合支付宝参数规范的订单信息
final String payInfo = orderInfo + "&sign=\"" + sign + "\"&"
+ getSignType();
Runnable payRunnable = new Runnable() {
@Override
public void run() {
// 构造PayTask 对象
PayTask alipay = new PayTask(PayDemoActivity.this);
// 调用支付接口,获取支付结果
String result = alipay.pay(payInfo);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
mHandler.sendMessage(msg);
}
};
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();
}
// 支付宝返回此次支付结果及加签,建议对支付宝签名信息拿签约时支付宝提供的公钥做验签
String resultInfo = payResult.getResult();`
还有就是,你的点击事件,用handle 做的监听:
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;
}
所以就是没什么重点,但是我在看支付的时候看到了一个网站:http://beecloud.cn/doc/android.php#register 这个是秒支付,封装的超级好的,就是有一点;
要钱的,那就算了,说重点,就是怎么配置;http://beecloud.cn/doc/ 这个事秒支付的技术文档;里面有的我就不多说,说重点,我开始看了半天,都是配置,就是没说,支付宝的PID ,KEY.放哪,找了一会,终于找到了,放到人家的服务器上,我在想,安全吗?
那我就不多说了,好是好,就是用着不放心,你还收费,无语ing