1…先导入一个jar包
自己保存好的
//2.工程的build.gradle
buildscript {
repositories {
google()
jcenter()
flatDir {
dirs 'libs'
}
}
android:name="android.permission.INTERNET" />
android:name="android.permission.ACCESS_NETWORK_STATE" />
android:name="android.permission.ACCESS_WIFI_STATE" />
//4.
请求支付接口
//支付宝支付
viewHolder.qfk.setOnClickListener(new View.OnClickListener() {
private ZfPresenter zfPresenter;
@Override
public void onClick(View v) {
zfPresenter = new ZfPresenter(new setZf());
zfPresenter.requestData(1686 + "", "15618082833491686", 2, list.get(i).orderId);
}
});
//5
成功失败方法
private class setZf implements DataCall {
@Override
public void seccer(Object o, Object... args) {
Result result = (Result) o;
Toast.makeText(context, (String) result.result, Toast.LENGTH_SHORT).show();
pay((String) result.result);
}
@Override
public void finl(Result result) {
Toast.makeText(context, result.message + "", Toast.LENGTH_SHORT).show();
}
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//吐司完成
Map<String, String> map = (Map<String, String>) msg.obj;
String s = map.get("memo");
Toast.makeText(context, "" + s, Toast.LENGTH_SHORT).show();
}
};
//调起支付宝
private void pay(String data) {
//data是调用电影支付接口之后返回的值
final String orderInfo = data;
Runnable payRunnable = new Runnable() {
@Override
public void run() {
PayTask alipay = new PayTask((DingDanActivity) context);
//这个Map是支付结果 其中memo是支付结果的文字提示 在handler里map.get
final Map<String, String> result = alipay.payV2(orderInfo, true);
Message msg = new Message();
msg.what = 1000;
msg.obj = result;
mHandler.sendMessage(msg);
}
};
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();
}