1.首先在app包下的libs放入官方提供的jar包
2.在AndroidManifest.xml中写入
<activity android:name="com.alipay.sdk.app.H5PayActivity" android:configChanges="orientation|keyboardHidden|navigation" android:exported="false" android:screenOrientation="behind" > </activity> <activity android:name="com.alipay.sdk.auth.AuthActivity" android:configChanges="orientation|keyboardHidden|navigation" android:exported="false" android:screenOrientation="behind" > </activity>
3.在需要调用支付宝的地方
private void pay(String data) {//这里的data是接口返回的一些支付宝需要的数据 final String orderInfo = data; // 订单信息 Runnable payRunnable = new Runnable() { @Override public void run() { PayTask alipay = new PayTask((Activity) context); String result = alipay.pay(orderInfo, true); Message msg = new Message(); msg.what = 1000; msg.obj = result; mHandler.sendMessage(msg); } }; // 必须异步调用 Thread payThread = new Thread(payRunnable); payThread.start(); }
private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); if (msg.what == 1000) { String result = (String) msg.obj; String[] split = result.split(";"); String s = split[0]; String[] split1 = s.split("="); String s1 = split1[1]; if (s1.contains("9000")) {//9000代表支付成功 Toast.makeText(context, "支付成功", Toast.LENGTH_SHORT).show(); SharedPreUtils.put(context, "AliPay", 2); ((VIPActivity) context).finish(); } else { if (s1.contains("6001")) {//6001代表取消支付 Toast.makeText(context, "用户取消", Toast.LENGTH_SHORT).show(); } else {//其余的则是支付失败 Toast.makeText(context, "支付失败", Toast.LENGTH_SHORT).show(); } } Logger.i("TestActivity", result); } } };