微信支付 支付宝支付

package com.bw.movie.activity;

import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;


import com.alipay.sdk.app.PayTask;
import com.bw.movie.R;
import com.bw.movie.bean.BuyTicketMovieBean;
import com.bw.movie.bean.WXBean;
import com.bw.movie.bean.ZhifuBaoBean;
import com.bw.movie.cinema.bean.OrderBean;
import com.bw.movie.mvp.presenter.IPresenter;
import com.bw.movie.mvp.view.IView;
import com.bw.movie.utils.Api;
import com.bw.movie.utils.EncryptUtil;
import com.bw.movie.wxapi.WXEntryActivity;

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

import butterknife.BindView;
import butterknife.ButterKnife;

public class ChooseSeatActivity extends AppCompatActivity  implements IView {

    @BindView(R.id.yingyuanname)
    TextView yingyuanname;
    @BindView(R.id.yingyuandizhi)
    TextView yingyuandizhi;
    @BindView(R.id.dianyingname)
    TextView dianyingname;
    @BindView(R.id.kaishi)
    TextView kaishi;
    @BindView(R.id.jieshu)
    TextView jieshu;
    @BindView(R.id.yingting)
    TextView yingting;
    @BindView(R.id.goupiao1)
    SeatTable goupiao1;
    @BindView(R.id.zongjiashiwei)
    TextView zongjiashiwei;
    @BindView(R.id.xiaoshu)
    TextView xiaoshu;
    @BindView(R.id.fukuan)
    ImageView fukuan;
    @BindView(R.id.quxiao)
    ImageView quxiao;
    @BindView(R.id.popgoupiao)
    LinearLayout popgoupiao;
    private int j;
    private int i;
    private TextView confirm_pay;
    private PopupWindow popupWindow;
    private SharedPreferences sharedPreferences;
    private BuyTicketMovieBean.ResultBean resultBean;
    private String scheduleId;
    private double totalPrice;
    private int pay = 1;
    private String userId,sessionId;
    private EncryptUtil util;
    private IPresenter iPresenter;
    private String orderId1;
    private Map<String, String> mapi;
    private  double d;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_choose_seat);
        ButterKnife.bind(this);
        iPresenter=new IPresenter(this);
        Intent intent=getIntent();

        yingyuanname.setText(intent.getStringExtra("start"));
        yingyuandizhi.setText(intent.getStringExtra("end"));
        dianyingname.setText(intent.getStringExtra("hall"));
        String sumprice=intent.getStringExtra("price");

       scheduleId=intent.getStringExtra("id");

        totalPrice =Double.parseDouble(sumprice);

        //获取userid
        sharedPreferences = getSharedPreferences("spDemo", MODE_PRIVATE);
        userId = sharedPreferences.getString("userId", "");
        sessionId = sharedPreferences.getString("sessionId", "");
        goupiao1.setScreenName("惠普");//设置屏幕名称
        goupiao1.setMaxSelected(5);//设置最多选中
        //**********点击购票
        goupiao1.setSeatChecker(new SeatTable.SeatChecker() {
            @Override
            public boolean isValidSeat(int row, int column) {
                if (column == 2) {
                    return false;
                }
                return true;
            }
            //***********最多选五张
            @Override
            public boolean isSold(int row, int column) {
                if (row == 6 && column == 6) {
                    return true;
                }
                return false;
            }
            //**********点击选中
            @Override
            public void checked(int row, int column) {

                j++;
                 d = (((totalPrice * j) * 100)) / 100.0;
                zongjiashiwei.setText(d+"");
                i = j;

            }
            //*************点击取消
            @Override
            public void unCheck(int row, int column) {
                i--;
                 d = (((totalPrice * i) * 100)) / 100.0;
                zongjiashiwei.setText(d+"");
                j = i;
            }
            @Override
            public String[] checkedSeatTxt(int row, int column) {
                return null;
            }

        });
        goupiao1.setData(10, 15);
        //*******点击取消
        quxiao.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                onBackPressed();
            }
        });
        //*********点击   √   付款
        fukuan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (i > 0) {
                util=new EncryptUtil();
                String entry= EncryptUtil.MD5(userId+ scheduleId+i+"movie");
                    mapi = new HashMap<>();
                    mapi.put("scheduleId",scheduleId+"");
                    mapi.put("amount",i+"");
                    mapi.put("sign",entry);
                    Log.i("TAGSSSSSS",entry+"");
                iPresenter.FileData(Api.BUYPIAO_PATH,mapi,OrderBean.class);
                    getPayPopvView();
                } else {
                    Toast.makeText(ChooseSeatActivity.this, "请先选座", Toast.LENGTH_SHORT).show();
                }

            }
        });

    }
    private void getPayPopvView() {
        View view = View.inflate(ChooseSeatActivity.this, R.layout.pay_popupwindow_view, null);
        ImageView detail_down = view.findViewById(R.id.detail_down);
        RadioGroup radiogroup = view.findViewById(R.id.radiogroup);
        confirm_pay = view.findViewById(R.id.confirm_pay);
        popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, 550);
        //设置焦点
        popupWindow.setFocusable(true);
        //设置是否可以触摸
        popupWindow.setTouchable(true);
        popupWindow.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#ffffff")));
        //关闭
        detail_down.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                popupWindow.dismiss();
            }
        });

        radiogroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.pay_wx:
                        pay = 1;
                        confirm_pay.setText("微信支付" + d + "元");
                        break;
                    case R.id.pay_alipay:
                        pay = 2;
                        confirm_pay.setText("支付宝支付" + d + "元");
                        break;
                    default:
                        break;
                }
            }
        });
        if (pay == 1) {
            confirm_pay.setText("微信支付" + d + "元");
        } else if (pay == 2) {
            confirm_pay.setText("支付宝支付" + d + "元");
        }

        //点击选择微信支付
        confirm_pay.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (pay==1){
                    HashMap<String, String> map1 = new HashMap<>();
                    map1.put("userId",userId);
                    map1.put("sessionId",sessionId);
                    map1.put("payType","1");
                    map1.put("orderId",orderId1);
                    iPresenter.FileData(Api.WEIXINPAYFOR_PATH,map1,WXBean.class);
                }else {
                    HashMap<String, String> map2 = new HashMap<>();
                    map2.put("userId",userId);
                    map2.put("sessionId",sessionId);
                    map2.put("payType","2");
                    map2.put("orderId",orderId1);
                    iPresenter.FileData(Api.WEIXINPAYFOR_PATH,map2,ZhifuBaoBean.class);
                }
            }
        });
        popupWindow.showAtLocation(View.inflate(ChooseSeatActivity.this, R.layout.activity_choose_seat, null),
                Gravity.BOTTOM, 0, 0);
    }

    @Override
    public void onSuccess(Object data) {
        if (data instanceof OrderBean) {
            OrderBean orderBean = (OrderBean) data;
            if (orderBean.getMessage().equals("下单成功")) {
                orderId1 = orderBean.getOrderId();

                Toast.makeText(this, "下单成功", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(this, "0000", Toast.LENGTH_SHORT).show();
            }
        }
        //微信支付
        if (data instanceof WXBean) {
            WXBean wxBean = (WXBean) data;
            Intent intent = new Intent(this, WXEntryActivity.class);
            intent.putExtra("appId", wxBean.getAppId());
            intent.putExtra("nonceStr", wxBean.getNonceStr());
            intent.putExtra("partnerId", wxBean.getPartnerId());
            intent.putExtra("prepayId", wxBean.getPrepayId());
            intent.putExtra("sign", wxBean.getSign());
            intent.putExtra("timeStamp", wxBean.getTimeStamp());
            intent.putExtra("packageValue", wxBean.getPackageValue());
            iPresenter.FileData(Api.WEIXINPAYFOR_PATH, mapi, OrderBean.class);
            Toast.makeText(this, wxBean.getMessage() + "", Toast.LENGTH_SHORT).show();
            startActivity(intent);
        }

        //支付宝支付
        if (data instanceof ZhifuBaoBean) {
            final ZhifuBaoBean zhifuBaoBean = (ZhifuBaoBean) data;
            if (zhifuBaoBean.getStatus().equals("0000")) {
                new Thread() {
                    @Override
                    public void run() {
                        super.run();
                        final PayTask payTask = new PayTask(ChooseSeatActivity.this);
                        payTask.payV2(zhifuBaoBean.getResult(), true);
                    }
                }.start();
            }

        }
    }

    @Override
    public void onfail(String error) {
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        iPresenter.detach();
    }
}

WXBean

package com.bw.movie.bean;

public class WXBean {

    /**
     * appId : wxb3852e6a6b7d9516
     * message : 支付成功
     * nonceStr : WQ72A7mNfUaA05Gw
     * partnerId : 1510865081
     * prepayId : wx07084938610450dcaad697243945045542
     * sign : 94F2FD993AB97C002E6CE898B04B578A
     * status : 0000
     * timeStamp : 1533602976
     * packageValue : Sign=WXPay
     */

    private String appId;
    private String message;
    private String nonceStr;
    private String partnerId;
    private String prepayId;
    private String sign;
    private String status;
    private String timeStamp;
    private String packageValue;

    public String getAppId() {
        return appId;
    }

    public void setAppId(String appId) {
        this.appId = appId;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getNonceStr() {
        return nonceStr;
    }

    public void setNonceStr(String nonceStr) {
        this.nonceStr = nonceStr;
    }

    public String getPartnerId() {
        return partnerId;
    }

    public void setPartnerId(String partnerId) {
        this.partnerId = partnerId;
    }

    public String getPrepayId() {
        return prepayId;
    }

    public void setPrepayId(String prepayId) {
        this.prepayId = prepayId;
    }

    public String getSign() {
        return sign;
    }

    public void setSign(String sign) {
        this.sign = sign;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getTimeStamp() {
        return timeStamp;
    }

    public void setTimeStamp(String timeStamp) {
        this.timeStamp = timeStamp;
    }

    public String getPackageValue() {
        return packageValue;
    }

    public void setPackageValue(String packageValue) {
        this.packageValue = packageValue;
    }
}

支付宝Bean

package com.bw.movie.bean;

public class ZhifuBaoBean {
    private String message;
    private String status;
    private String result;

    public ZhifuBaoBean(String message, String status, String result) {
        this.message = message;
        this.status = status;
        this.result = result;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值