MainActivity.java 4.14 KB
package com.cnlive.demo.pay;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;

import com.cnlive.libs.pay.IPay;
import com.cnlive.libs.pay.PayStatusCallback;
import com.cnlive.libs.pay.PayUtil;

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

public class MainActivity extends AppCompatActivity {

    private ProgressDialog dialog;

    private String orderId;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void clickWX(View v) {
        showDialog();
        PayUtil.startPay(this, IPay.PAY_TYPE_WX, System.currentTimeMillis() + "", "测试", 1, "http://apps.pay.cnlive.com/upappnotify/notify/updateCnCoin", "liveshow", "", getTestExtraParams(), new PayStatusCallback() {
            @Override
            public void onStartCallPayPage(int i) {
                closeDialog();
            }

            @Override
            public void onSuccess(int payType) {
                Toast.makeText(MainActivity.this, "支付成功", Toast.LENGTH_LONG).show();
            }

            @Override
            public void onFail(int payType, int errorCode, String errorMsg) {
                closeDialog();
                Toast.makeText(MainActivity.this, "支付失败:" + errorMsg, Toast.LENGTH_LONG).show();
            }
        });
    }

    public void clickAli(View v) {
        showDialog();
        PayUtil.startPay(this, IPay.PAY_TYPE_ALI, System.currentTimeMillis() + "", "测试", 1, "http://apps.pay.cnlive.com/upappnotify/notify/updateCnCoin", "liveshow", "", getTestExtraParams(), new PayStatusCallback() {
            @Override
            public void onStartCallPayPage(int i) {
                closeDialog();
            }

            @Override
            public void onSuccess(int payType) {
                Toast.makeText(MainActivity.this, "支付成功", Toast.LENGTH_LONG).show();
            }

            @Override
            public void onFail(int payType, int errorCode, String errorMsg) {
                closeDialog();
                Toast.makeText(MainActivity.this, "支付失败:" + errorMsg, Toast.LENGTH_LONG).show();
            }
        });
    }

    public void clickUnion(View v) {
        showDialog();
        orderId = System.currentTimeMillis() + "";
        PayUtil.startPay(this, IPay.PAY_TYPE_UNION, orderId, "测试", 50, "http://apps.pay.cnlive.com/upappnotify/notify/updateCnCoin", "", "", getTestExtraParams(), new PayStatusCallback() {
            @Override
            public void onStartCallPayPage(int i) {
                closeDialog();
            }

            @Override
            public void onSuccess(int payType) {
                Toast.makeText(MainActivity.this, "支付成功", Toast.LENGTH_LONG).show();
            }

            @Override
            public void onFail(int payType, int errorCode, String errorMsg) {
                closeDialog();
                Toast.makeText(MainActivity.this, "支付失败," + errorMsg, Toast.LENGTH_LONG).show();
            }
        });
    }

    //测试业务系统需要的其他参数
    private Map<String, String> getTestExtraParams() {
        Map<String, String> extraParams = new HashMap<>();
        extraParams.put("plat", "a");
        extraParams.put("sid", "123554");
        return extraParams;
    }


    private void showDialog() {
        if (dialog != null && dialog.isShowing()) return;
        if (dialog == null) {
            dialog = new ProgressDialog(this);
            dialog.setMessage("正在加载支付页面...");
        }
        dialog.show();
    }

    private void closeDialog() {
        if (dialog != null && dialog.isShowing())
            dialog.cancel();
    }

    @Override
    protected void onPause() {
        super.onPause();
        closeDialog();
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        PayUtil.unionPayOnActivityResult(orderId, data);
    }
}