用于获取支付宝回调
private CountDownLatch payCountDownLatch;
//调起支付宝
public String toPay(final String orderStr) {
payCountDownLatch = new CountDownLatch(1);
Runnable payRunnable = new Runnable() {
@Override
public void run() {
PayTask alipay = new PayTask(mContext);
Map<String, String> result = alipay.payV2(orderStr, true);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
mHandler.sendMessage(msg);
mCountDownLatch.countDown();
}
};
Thread payThread = new Thread(payRunnable);
payThread.start();
try{
mCountDownLatch.await();
}catch (InterruptedException e){
e.printStackTrace();
}
return paycode;
}
@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 resultStatus = payResult.getResultStatus();
paycode = "{"code":""+resultStatus+""}";
payCountDownLatch.countDown();
break;
}
default:
break;
}
}
};