首先下载:(一定要用自己的KEY)
选好你要用的(我用的是安卓):
把sdk中的那个文件放入你项目的libs下:
demo下的文件放入项目(Activity与Fragment不要)
进去后把报错的地方改一下 该删的删 该导包的导包
处理完这些后 点入demo中的PayActivity中粘出代码
APPID 在支付宝开发平台的沙箱应用中:
/**
* 用于支付宝支付业务的入参 app_id。
*/
public static final String APPID = "2016101400683028";
/**
* 用于支付宝账户登录授权业务的入参 pid。
*/
public static final String PID = "";
/**
* 用于支付宝账户登录授权业务的入参 target_id。
*/
public static final String TARGET_ID = "";
//私钥
public static final String RSA2_PRIVATE = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCkAPqOz98Juk8k1d0yCLPrQQx9BUvm9pTtFgswQb//8EUzUjuuTVvC8YExQL8Y2N8PCdYo5M9fpYoFNKMclIa2sj09pS5lO9jViGbsX5h5MdQgHufygUW+e7vGLz3Iu+5GVk3DjxBF6eqBhca8U5ZIXSzrLjB9i82ErcDnD+knpgR3XP7t9C/apPph8ykQNTzACGC1EKmi+t9vOa0P1U9VinmKCbhnyRvVhcTVf/i5/NdS3Q08yrJpZlbehYPvi4BctNjVmvm7bxuKRoMDJqpj1uXRJipzMkAaGze9Co8J536nK7io2mYAPIdOZ3vAHaZZ+Pt2jbZCIFyqsoqHQn3lAgMBAAECggEAQPyGTGrAVYl27QC1qqraKGFZQn0Dy5xv/NZcTp3vJ8qckS6HqZTLxJ6P8+VVE9Jz6PCb5Q5twdfFrjRiYePU0bYlIDVBAipJzKtFJWrn7zY4eRXmESj6avV6vZhgohcd3s8590DMUPfUzcglrOBuT3RkZTijTExGfsmfA7BBUk0I5S71La3oKwPm0nkh+iViu+h4+GJHs1EEH0PtBtXbqXVhcocT2eIjhEGpFN0yJjHmDsuCfX7Axsp7jjsqfakgm9ZEAPoc9hsIZi3pR+wDQG3jswC2FXOKYNlBCX8RAL1ZioIF9JAYFwaBBf08HcL4dg89gXquGwI1aE+SnB3MzQKBgQDzze1nYceTYlcFs2WG0WKscAimYT1Bfcpm70evSaGyGC09rO0ooIsebr+gaNU4SQWaOsDnJajpbm36xoaojQS2Gb7JrQVk7PrJ2A8qg9F6GqtRQULEAvyQDHmIIhVv7A+EZvEkKDaf3Bo9bbBHbTvCk18iP99FOM8jfFjxlcc8LwKBgQCsNSdKX6KpQaRIeGoAuw7irCOF6hPbY2A1TjYveGTwM2M38PDE4hrkShr+7gAAtgKVJeVEWqV5ZGDSEO4e+O6wlQKAX8wbIM6xApq3/hpBnxwuVi0RQ69suEuZFRsW24kwvKjdpHP59oaA62OjS1STDxbPxcHbGcbiHGOan0g+KwKBgQDBVmVUXWsJyqtd3vS9I+CPBE0nu+b6v4k5dbkwHUD33UpLJY3wcNfB62tVBq1HdEjYFI2S//9iFetrOfHhSesZiXMNtYKYlYEPfaIRQfVlUi7XQdxzWjb0+J+LwBOl7NolUgkadjVTMhUw74IiMlJ4q6t+mo4w86r35g0Wj4MuiwKBgQCq2rm2wpfiEexqsn2JaA3mux8reAhnfHsxp/1+r5aF8pYYJIbc7+/6W8PY9k0uZ2a8j7KeVMkkXYDqKj32oMhAjjbDI0igCbbITGsw7X0jajdNidaA8ISV+2uV4CjWTs4YerWX4dfnQr5EHkbm9pBcr3XUgsJJHZQDNmNkP3AvrQKBgE8rsOc1EznPzmyk1cLbAWyAdtybtK7SPrl0n9QZNPKGedPRDQ8gMRYe7RsH4gkkrX3E3mfOBQEuHdhPY7LQhD4IzJU2Ubgrnah1d/r3pIeu4a0Jh43rxRaCVZmkIBHY2yah7pnSwzrV3fKGdkbm8qxPUFV2RVEr0TGEiJybbm3i";
private static final int SDK_PAY_FLAG = 1;
@SuppressLint("HandlerLeak")
private Handler mHandler = new Handler() {
@SuppressWarnings("unused")
public void handleMessage(Message msg) {
switch (msg.what) {
case SDK_PAY_FLAG: {
@SuppressWarnings("unchecked")
PayResult payResult = new PayResult((Map<String, String>) msg.obj);
/**
* 对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。
*/
String resultInfo = payResult.getResult();// 同步返回需要验证的信息
String resultStatus = payResult.getResultStatus();
// 判断resultStatus 为9000则代表支付成功
if (TextUtils.equals(resultStatus, "9000")) {
// 该笔订单是否真实支付成功,需要依赖服务端的异步通知。
Toast.makeText(MainActivity.this, "成功", Toast.LENGTH_SHORT).show();
} else {
// 该笔订单真实的支付结果,需要依赖服务端的异步通知。
Toast.makeText(MainActivity.this, "失败", Toast.LENGTH_SHORT).show();
}
break;
}
default:
break;
}
};
};
使用支付宝的沙时需要导入依赖与联调网关:
位置:开发者平台——>文代中心——>产品文档——>App支付——>沙箱联调指南
EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);
位置:开发者平台——>文代中心——>产品文档——>App支付——>客户端AS集成流程
allprojects {
repositories {
// 添加下面的内容
flatDir {
dirs 'libs'
}
// ... jcenter() 等其他仓库
}
}
dependencies {
// 添加下面的内容(这里的name填写你自己导入的那个)
compile (name: 'alipaySdk-15.5.7-20181023110917', ext: 'aar')
// ... 其他依赖项
}
支付时调用:
boolean rsa2 = (RSA2_PRIVATE.length() > 0);
Map<String, String> params = OrderInfoUtil2_0.buildOrderParamMap(APPID, rsa2);
String orderParam = OrderInfoUtil2_0.buildOrderParam(params);
String privateKey = RSA2_PRIVATE ;
String sign = OrderInfoUtil2_0.getSign(params, privateKey, rsa2);
final String orderInfo = orderParam + "&" + sign;
final Runnable payRunnable = new Runnable() {
@Override
public void run() {
PayTask alipay = new PayTask(MainActivity.this);
Map<String, String> result = alipay.payV2(orderInfo, true);
Log.i("msp", result.toString());
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
mHandler.sendMessage(msg);
}
};
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();