微信支付:https://www.jianshu.com/p/84eac713f007
支付宝:https://docs.open.alipay.com/204/105296/
public class WXPayEntryActivity extends AppCompatActivity implements IWXAPIEventHandler {
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wxpay_entry);
ButterKnife.bind(this);
api = WXAPIFactory.createWXAPI(this, "wxb3852e6a6b7d9516");
api.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
@Override
public void onReq(BaseReq baseReq) {
Toast.makeText(getApplicationContext(), "成功", Toast.LENGTH_LONG).show();
}
@Override
/*//支付结果*/
public void onResp(BaseResp resp) {
if (TextUtils.isEmpty(resp.openId)) {
Log.i("xml", "啥也没有");
}
if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
// AlertDialog.Builder builder = new AlertDialog.Builder(this);
//builder.setTitle("微信支付提示");
switch (resp.errCode) {
case 0://支付成功
Toast.makeText(getApplicationContext(), "支付成功", Toast.LENGTH_SHORT).show();//builder.setMessage("支付成功.");
break;
case -1://支付失败,一般是后端签名失败等问题
Toast.makeText(getApplicationContext(), "支付失败", Toast.LENGTH_SHORT).show();
// builder.setMessage("支付失败,请清理微信缓存或重新安装.");
break;
case -2://用户取消了支付
Toast.makeText(getApplicationContext(), "支付已取消.", Toast.LENGTH_SHORT).show();
//builder.setMessage("支付已取消.");
break;
}
// builder.show();
}
finish();
}
}
Activity支付
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
if (msg.what==0){
Map<String,String> map=(Map<String, String>)msg.obj;
}
Toast.makeText(ChooseSeat.this, map.toString(), Toast.LENGTH_LONG).show();
};
};
public void onPayView(Object object) {
PayBean payBean = (PayBean) object;
final String result2 = payBean.getResult();
Toast.makeText(this, ""+ payBean.getMessage(), Toast.LENGTH_SHORT).show();
//微信
Log.e("gsk", "viewData: "+ payBean.getAppId());
IWXAPI api = WXAPIFactory.createWXAPI(this, null);
PayReq req = new PayReq();
req.appId = payBean.getAppId();//你的微信appid
req.partnerId = payBean.getPartnerId();//商户号
req.prepayId = payBean.getPrepayId();//预支付交易会话ID
req.nonceStr = payBean.getNonceStr();//随机字符串
req.timeStamp = payBean.getTimeStamp();//时间戳
req.packageValue = payBean.getPackageValue();
req.sign = payBean.getSign();//签名
//req.extData = "app data"; // optional
api.registerApp("wxb3852e6a6b7d9516");
// 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
api.sendReq(req);
//支付宝
Runnable payRunnable = new Runnable() {
@Override
public void run() {
PayTask alipay = new PayTask(ChooseSeat.this);
Map<String,String> result = alipay.payV2(result2,true);
Message msg = new Message();
msg.what = 0;
mHandler.sendMessage(msg);
}
};
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();
}