美文网首页
支付宝支付(复制直接用)

支付宝支付(复制直接用)

作者: 小慧sir | 来源:发表于2020-06-16 17:08 被阅读0次

此文章仅供参考,实现为简单的支付流程效果,如果各位访友有更好的见解,请留言,欢迎学术交流。下面为实现步骤:

配置SDK (可到支付宝平台下载最新)

1、首先集成支付宝SDK app/libs 添加 .arr或jar

下载地址:https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1

2、AndroidManifest.xml (清单文件中)
 <!--支付宝(sdk配置)-->
    <!--android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE-->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
3、app/build.gradle /dependencies中添加
 //支付宝(sdk配置) 添加下面的内容(注意:alipaySdk-15.5.7-20181023110要与libs中的.aar文件名一致)
    implementation (name: 'alipaySdk-15.5.7-201810231109', ext: 'aar')

4、build.gradle 中添加
allprojects {
    repositories {
        google()
        jcenter()
        //  支付宝(sdk配置) 添加下面的内容
        flatDir {
            dirs 'libs'
        }
}

到此sdk配置ok

1、res/layout下创建 .xml文件 activity_submitorder.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#E5E5E5"
    tools:context=".ui.activity.Submit0rdersActivity">


    <RelativeLayout
        android:id="@+id/re_breakOn"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#E5E5E5">

        <RelativeLayout
            android:id="@+id/relative_on_"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp_48"
            android:layout_alignParentTop="true"
            android:background="#f4f4f4">

            <ImageView
                android:layout_width="@dimen/dp_26"
                android:layout_height="@dimen/dp_26"
                android:layout_alignParentLeft="true"
                android:layout_centerVertical="true"
                android:layout_marginLeft="@dimen/dp_20"
                android:src="@mipmap/back_hui" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerHorizontal="true"
                android:layout_centerVertical="true"
                android:text="确认订单"
                android:textColor="#151515"
                android:textSize="@dimen/sp_17" />
        </RelativeLayout>


        <RelativeLayout
            android:id="@+id/re_1"
            android:layout_width="match_parent"
            android:layout_height="96dp"
            android:layout_below="@+id/relative_on_"
            android:layout_marginLeft="6dp"
            android:layout_marginRight="6dp"
            android:background="@color/white">

            <RelativeLayout
                android:id="@+id/re_on"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginLeft="6dp"
                android:layout_marginRight="6dp"
                android:background="@color/white">

                <ImageView
                    android:id="@+id/image_add"
                    android:layout_width="30dp"
                    android:layout_height="30dp"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="8dp"
                    android:src="@mipmap/add_address" />

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="8dp"
                    android:layout_toRightOf="@id/image_add"
                    android:text="添加收货地址"
                    android:textColor="@color/black"
                    android:textSize="21sp" />


            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/re_site_ok"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_alignParentTop="true"
                android:layout_centerHorizontal="true"
                android:layout_marginLeft="6dp"
                android:layout_marginRight="6dp"
                android:background="@color/white">

                <RelativeLayout
                    android:id="@+id/reok_01"
                    android:layout_width="match_parent"
                    android:layout_height="@dimen/dp_24"
                    android:layout_alignParentLeft="true"
                    android:layout_marginLeft="@dimen/dp_8"
                    android:layout_marginTop="@dimen/dp_16"
                    android:layout_toLeftOf="@id/re_one">

                    <TextView
                        android:id="@+id/txt_name"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_centerVertical="true"
                        android:text="收货人:"
                        android:textColor="@color/black"
                        android:textSize="@dimen/sp_17" />

                    <TextView
                        android:id="@+id/text_dahao"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentRight="true"
                        android:layout_centerVertical="true"
                        android:text="00000"
                        android:textColor="@color/black"
                        android:textSize="@dimen/sp_17" />
                </RelativeLayout>

                <TextView
                    android:id="@+id/text_dizhi"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@id/reok_01"
                    android:layout_alignParentLeft="true"
                    android:layout_marginLeft="@dimen/dp_8"
                    android:layout_marginTop="@dimen/dp_20"
                    android:layout_toLeftOf="@id/re_one"
                    android:ellipsize="end"
                    android:maxLines="2"
                    android:text="收货地址:"
                    android:textColor="@color/black"
                    android:textSize="@dimen/sp_13" />

                <RelativeLayout
                    android:id="@+id/re_one"
                    android:layout_width="@dimen/dp_64"
                    android:layout_height="match_parent"
                    android:layout_alignParentRight="true">

                    <ImageView
                        android:id="@+id/im_beak_ok"
                        android:layout_width="36dp"
                        android:layout_height="36dp"
                        android:layout_centerHorizontal="true"
                        android:layout_centerVertical="true"
                        android:src="@mipmap/back_h" />
                </RelativeLayout>

            </RelativeLayout>
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/re_re"
            android:layout_width="match_parent"
            android:layout_height="144dp"
            android:layout_below="@id/re_1"
            android:layout_marginLeft="6dp"
            android:layout_marginTop="8dp"
            android:layout_marginRight="6dp"
            android:background="@color/white">

            <!--<TextView-->
            <!--android:id="@+id/tv_order_num"-->
            <!--android:layout_width="wrap_content"-->
            <!--android:layout_height="wrap_content"-->
            <!--android:layout_alignParentLeft="true"-->
            <!--android:layout_alignParentTop="true"-->
            <!--android:layout_marginLeft="@dimen/dp_8"-->
            <!--android:layout_marginTop="@dimen/dp_4"-->
            <!--android:text="订单号:4155156255"-->
            <!--android:textColor="@color/gray"-->
            <!--android:textSize="@dimen/sp_13" />-->

            <ImageView
                android:id="@+id/im_1"
                android:layout_width="@dimen/dp_88"
                android:layout_height="@dimen/dp_88"
                android:layout_alignParentTop="true"
                android:layout_marginLeft="@dimen/dp_8"
                android:layout_marginTop="@dimen/dp_40"
                android:scaleType="centerCrop"
                android:src="@color/line_gray" />

            <TextView
                android:id="@+id/tv_iphone_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="20dp"
                android:layout_marginTop="44dp"
                android:layout_marginRight="@dimen/dp_10"
                android:layout_toLeftOf="@+id/text_jifen"
                android:layout_toRightOf="@id/im_1"
                android:ellipsize="end"
                android:maxLines="1"
                android:text=""
                android:textColor="@color/black"
                android:textSize="17sp" />


            <TextView
                android:id="@+id/text_jifen"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginTop="@dimen/dp_44"
                android:layout_marginRight="@dimen/dp_8"
                android:text="0积分"
                android:textColor="@color/black"
                android:textSize="17sp" />

            <TextView
                android:id="@+id/tv_num"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_below="@+id/text_jifen"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_marginTop="@dimen/dp_4"
                android:layout_marginRight="8dp"
                android:text="X 1"
                android:textColor="@color/black"
                android:textSize="13sp" />

        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/re_r3"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp_48"
            android:layout_below="@id/re_re"
            android:layout_marginLeft="@dimen/dp_6"
            android:layout_marginTop="@dimen/dp_1"
            android:layout_marginRight="@dimen/dp_6"
            android:background="@color/white">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginLeft="@dimen/dp_8"
                android:text="运费"
                android:textColor="@color/black"
                android:textSize="@dimen/sp_14" />

            <TextView
                android:id="@+id/tv_freight"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_marginRight="@dimen/dp_8"
                android:text="0积分"
                android:textColor="@color/black"
                android:textSize="@dimen/sp_14" />
        </RelativeLayout>

        <RelativeLayout
            android:id="@+id/re_r4"
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp_48"
            android:layout_below="@id/re_r3"
            android:layout_marginLeft="@dimen/dp_6"
            android:layout_marginTop="@dimen/dp_1"
            android:layout_marginRight="@dimen/dp_6"
            android:background="@color/white"
            android:visibility="gone">

            <TextView
                android:id="@+id/tv_leave_word"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_toLeftOf="@id/text_zhong"
                android:text="合计:"
                android:textColor="@color/black"
                android:textSize="@dimen/sp_14" />

            <TextView
                android:id="@+id/text_zhong"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginRight="@dimen/dp_2"
                android:layout_toLeftOf="@id/t_1"
                android:text="0"
                android:textColor="@color/red"
                android:textSize="@dimen/sp_14" />

            <TextView
                android:id="@+id/t_1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_marginRight="@dimen/dp_8"
                android:text="积分"
                android:textColor="@color/red"
                android:textSize="@dimen/sp_14" />
        </RelativeLayout>

        <LinearLayout
            android:id="@+id/ll_wechat"
            android:layout_width="match_parent"
            android:layout_height="70dp"
            android:layout_below="@id/re_r4"
            android:layout_marginLeft="16dp"
            android:layout_marginTop="@dimen/dp_10"
            android:layout_marginRight="16dp"
            android:background="#fff"
            android:gravity="center_vertical"
            android:orientation="horizontal">


            <ImageView
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_margin="16dp"
                android:background="@mipmap/wechat" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="center_vertical"
                android:text="微信支付"
                android:textColor="#000"
                android:textSize="16sp" />


            <CheckBox
                android:id="@+id/wechat_check"
                style="@style/CustomCheckBoxTheme"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="16dp"
                android:clickable="false" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll_ali"
            android:layout_width="match_parent"
            android:layout_height="70dp"
            android:layout_below="@+id/ll_wechat"
            android:layout_marginLeft="16dp"
            android:layout_marginTop="10dp"
            android:layout_marginRight="16dp"
            android:background="#fff"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/imageView14"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_margin="16dp"
                android:background="@mipmap/alipay" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="center_vertical"
                android:text="支付宝支付"
                android:textColor="#000"
                android:textSize="16sp" />

            <CheckBox
                android:id="@+id/ali_check"
                style="@style/CustomCheckBoxTheme"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="16dp"
                android:clickable="false" />

        </LinearLayout>

        <LinearLayout
            android:id="@+id/ll_jifen"
            android:layout_width="match_parent"
            android:layout_height="70dp"
            android:layout_below="@+id/ll_ali"
            android:layout_marginLeft="16dp"
            android:layout_marginTop="10dp"
            android:layout_marginRight="16dp"
            android:background="#fff"
            android:gravity="center_vertical"
            android:orientation="horizontal">

            <ImageView
                android:id="@+id/imageVi"
                android:layout_width="48dp"
                android:layout_height="48dp"
                android:layout_margin="16dp"
                android:background="@mipmap/ger28" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="center_vertical"
                android:text="积分支付"
                android:textColor="#000"
                android:textSize="16sp" />

            <CheckBox
                android:id="@+id/ali_ch"
                style="@style/CustomCheckBoxTheme"
                android:layout_width="20dp"
                android:layout_height="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="16dp"
                android:clickable="false" />

        </LinearLayout>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="@dimen/dp_64"
            android:layout_alignParentBottom="true"
            android:background="@color/white">

            <Button
                android:id="@+id/btn_exchangOn"
                android:layout_width="@dimen/dp_111"
                android:layout_height="@dimen/dp_48"
                android:layout_alignParentRight="true"
                android:layout_centerVertical="true"
                android:layout_marginRight="@dimen/dp_8"
                android:background="@drawable/btn_blue"
                android:text="立即兑换"
                android:textColor="@color/white"
                android:textSize="@dimen/sp_21" />

            <TextView
                android:id="@+id/tv_jifenOn"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_marginRight="@dimen/dp_20"
                android:layout_toLeftOf="@id/btn_exchangOn"
                android:text="0积分"
                android:textColor="@color/red"
                android:textSize="@dimen/sp_19" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_toLeftOf="@id/tv_jifenOn"
                android:text="合计:  "
                android:textColor="@color/black"
                android:textSize="@dimen/sp_19" />
        </RelativeLayout>
    </RelativeLayout>


</RelativeLayout>
2、res/values/styles.xml 中添加
<!--支付宝-->
    <style name="CustomCheckBoxTheme" parent="@android:style/Widget.CompoundButton.CheckBox">
        <item name="android:button">@drawable/checkbox_style</item>
    </style>
    <style name="CustomCheckBoxThemes" parent="@android:style/Widget.CompoundButton.CheckBox">
        <item name="android:button">@drawable/checkboxs_style</item>
    </style>
3、Activity 中 实现微信、支付宝、积分点击效果
//TODO
    @OnClick({R.id.re_site_ok, R.id.btn_exchangOn, R.id.relative_on_, R.id.re_on, R.id.ll_wechat, R.id.ll_jifen, R.id.ll_ali})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.ll_wechat: //微信
                aliCheck.setChecked(false);
                jifenCheck.setChecked(false);
                wechatCheck.setChecked(!wechatCheck.isChecked());
                break;
            case R.id.ll_ali: //支付宝
                wechatCheck.setChecked(false);
                jifenCheck.setChecked(false);
                aliCheck.setChecked(!aliCheck.isChecked());
                break;
            case R.id.ll_jifen: //积分
                wechatCheck.setChecked(false);
                aliCheck.setChecked(false);
                jifenCheck.setChecked(!jifenCheck.isChecked());
                break;
  case R.id.btn_exchangOn: //有 立即兑换 提交订单
                if (aliCheck.isChecked()) {
                    Toast.makeText(this, "支付宝支付", Toast.LENGTH_SHORT).show();
                    getAliPayResult(); //调用后台接口
                } else if (wechatCheck.isChecked()) {
                    Toast.makeText(this, "微信支付", Toast.LENGTH_SHORT).show();
//                    weChatPay(); //微信接口
                } else if (jifenCheck.isChecked()) {
                    Toast.makeText(this, "积分支付", Toast.LENGTH_SHORT).show();
                    jifezhifu();
                } else {
                    Toast.makeText(this, "请选择支付方式", Toast.LENGTH_SHORT).show();
                }
4、getAliPayResult(); //调用后台提供的接口(这个接口后台提供)
//三个参数依此为://商品编号、商品价格、商品名称
   public void getAliPayResult() {
        ((SubmitPresenter) mPresenter).alipay(String.valueOf(Constant.IDSAS), Double.valueOf(Constant.ZONG_JIA), Constant.NAME);
    }
5、支付宝返回值(接口post提交成功返回结果)
    @Override
    public void alipayRean(AliPayBean aliPayBean) {
        if (aliPayBean != null) {
            String resultStatus = aliPayBean.getBody();
            if (resultStatus != null) {
                aliPay(resultStatus); //resultStatus 为返回状态结果
            } else {
                return;
            }
        }
    }
6、aliPay(resultStatus)返回结果处理
    private void aliPay(final String requestUrl) {
        Runnable payRunnable = new Runnable() {
            @Override
            public void run() {
                PayTask alipay = new PayTask(Submit0rdersActivity.this);
                Map<String, String> result = alipay.payV2(requestUrl, true);
                Log.i("msp", result.toString());
                Message msg = new Message();
                msg.what = SDK_PAY_FLAG;
                msg.obj = result;
                mHandler.sendMessage(msg);
            }
        };

        Thread payThread = new Thread(payRunnable);
        payThread.start();
    }
@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 resultInfo = payResult.getResult();// 同步返回需要验证的信息
                    String resultStatus = payResult.getResultStatus();
                    // 判断resultStatus 为9000则代表支付成功
                    if (TextUtils.equals(resultStatus, "9000")) {
                        // 该笔订单是否真实支付成功,需要依赖服务端的异步通知。
//                        if(courseInfoBean != null){
//                            ZhuGeUtil.getmInstance().addEvent(ZGEventNameConfig.FINISH_BUY_COURSE,"课程标题",courseInfoBean.getCourse_name());
//                        }
                        Toast.makeText(Submit0rdersActivity.this, "支付成功", Toast.LENGTH_SHORT).show();
                        finish();
                    } else {
                        // 该笔订单真实的支付结果,需要依赖服务端的异步通知。
                        Toast.makeText(Submit0rdersActivity.this, "支付失败", Toast.LENGTH_SHORT).show();
                        finish();
                    }
                    break;
                }
                default:
                    break;
            }
        }


    };

下面为完整的Activity 供参考

完整Activity
public class Submit0rdersActivity extends BaseActivity implements SubmitContract.View {

    @BindView(R.id.wechat_check)
    CheckBox wechatCheck;
    @BindView(R.id.ali_ch)
    CheckBox jifenCheck;
    @BindView(R.id.ll_wechat)
    LinearLayout llWechat;
    @BindView(R.id.imageView14)
    ImageView imageView14;
    @BindView(R.id.ali_check)
    CheckBox aliCheck;
    @BindView(R.id.ll_ali)
    LinearLayout llAli;
    @BindView(R.id.ll_jifen)
    LinearLayout llJifen;

    //    private IWXAPI api;
    private static final int SDK_PAY_FLAG = 1;

    @BindView(R.id.re_on)
    RelativeLayout reOn;
    @BindView(R.id.re_site_ok)
    RelativeLayout reSiteOk;
    @BindView(R.id.relative_on_)
    RelativeLayout relativeOn_;
    @BindView(R.id.btn_exchangOn)
    Button btnExchangOn;
    @BindView(R.id.im_1)
    ImageView im_;
    @BindView(R.id.tv_iphone_name)
    TextView tvIphoneName;
    @BindView(R.id.text_jifen)
    TextView textJifen;
    @BindView(R.id.tv_freight)
    TextView tvFreight;
    @BindView(R.id.tv_num)
    TextView tvNum;
    //    @BindView(R.id.tv_order_num)
//    TextView tvOrderNum;
    @BindView(R.id.text_zhong)
    TextView textZong;
    @BindView(R.id.txt_name)
    TextView txtName;
    @BindView(R.id.text_dahao)
    TextView textDahao;
    @BindView(R.id.text_dizhi)
    TextView textDizhi;
    @BindView(R.id.tv_jifenOn)
    TextView tvJifenOn;
    private int typeid;
    private int add_price;
    private int num;
    private boolean indxler = true;
    private String get_name;
    private String get_phone;
    private String get_address;

    private String getname;
    private String getphone;
    private String getaddress;

    private int type = 0;
    private String img;
    private int idsas;
    private int src_price;
    private int freight;

    @Override
    protected IBasePresenter getPresenter() {
        return new SubmitPresenter();
    }

    @Override
    protected int getLayoutId() {
        return R.layout.activity_submitorder;
    }


    //TODO
    @OnClick({R.id.re_site_ok, R.id.btn_exchangOn, R.id.relative_on_, R.id.re_on, R.id.ll_wechat, R.id.ll_jifen, R.id.ll_ali})
    public void onViewClicked(View view) {
        switch (view.getId()) {
            case R.id.ll_wechat:
                aliCheck.setChecked(false);
                jifenCheck.setChecked(false);
                wechatCheck.setChecked(!wechatCheck.isChecked());
                break;
            case R.id.ll_ali:
                wechatCheck.setChecked(false);
                jifenCheck.setChecked(false);
                aliCheck.setChecked(!aliCheck.isChecked());
                break;
            case R.id.ll_jifen:
                wechatCheck.setChecked(false);
                aliCheck.setChecked(false);
                jifenCheck.setChecked(!jifenCheck.isChecked());
                break;
            case R.id.re_site_ok: //有 地址管理
                Intent intent = new Intent();
                intent.setClass(context, SelectAddressActivity.class);
                intent.putExtra("typeid_", typeid);
                intent.putExtra("num_", num);
                Constant.IS_MINE = false;
                Constant.IS_MINE_IS = "1";
                startActivity(intent);
                finish();
                break;
            case R.id.re_on: //无 地址管理
                Intent intent1 = new Intent();
                intent1.setClass(context, SelectAddressActivity.class);
                intent1.putExtra("typeid_", typeid);
                intent1.putExtra("num_", num);
                Constant.IS_MINE = false;
                Constant.IS_MINE_IS = "1";
                startActivity(intent1);
                finish();
                break;
            case R.id.btn_exchangOn: //有 立即兑换 提交订单
                if (aliCheck.isChecked()) {
                    Toast.makeText(this, "支付宝支付", Toast.LENGTH_SHORT).show();
                    getAliPayResult();
                } else if (wechatCheck.isChecked()) {
                    Toast.makeText(this, "微信支付", Toast.LENGTH_SHORT).show();
//                    weChatPay();
                } else if (jifenCheck.isChecked()) {
                    Toast.makeText(this, "积分支付", Toast.LENGTH_SHORT).show();
                    jifezhifu();
                } else {
                    Toast.makeText(this, "请选择支付方式", Toast.LENGTH_SHORT).show();
                }


                break;
            case R.id.relative_on_:
                finish();
                break;
        }
    }

    @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 resultInfo = payResult.getResult();// 同步返回需要验证的信息
                    String resultStatus = payResult.getResultStatus();
                    // 判断resultStatus 为9000则代表支付成功
                    if (TextUtils.equals(resultStatus, "9000")) {
                        // 该笔订单是否真实支付成功,需要依赖服务端的异步通知。
//                        if(courseInfoBean != null){
//                            ZhuGeUtil.getmInstance().addEvent(ZGEventNameConfig.FINISH_BUY_COURSE,"课程标题",courseInfoBean.getCourse_name());
//                        }
                        Toast.makeText(Submit0rdersActivity.this, "支付成功", Toast.LENGTH_SHORT).show();
                        finish();
                    } else {
                        // 该笔订单真实的支付结果,需要依赖服务端的异步通知。
                        Toast.makeText(Submit0rdersActivity.this, "支付失败", Toast.LENGTH_SHORT).show();
                        finish();
                    }
                    break;
                }
                default:
                    break;
            }
        }


    };

    public void getAliPayResult() {
        ((SubmitPresenter) mPresenter).alipay(String.valueOf(Constant.IDSAS), Double.valueOf(Constant.ZONG_JIA), Constant.NAME);
        //TODO
//        String point = courseInfoBean.getPrice();
//        String course_id = courseInfoBean.getCourse_id();
//        String course_name = courseInfoBean.getCourse_name();
//        CIOTimesNet.AliPay(course_id, point, course_name, new TextHttpResponseHandler() {
//            @Override
//            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
//            }

//            @Override
//            public void onSuccess(int statusCode, Header[] headers, String responseString) {
//                AliPayBean aliPayBean = JSON.parseObject(responseString, AliPayBean.class);
//                aliPay("<form name='punchout_form' method='post' action='https://openapi.alipay.com/gateway.do?charset=utf-8&method=alipay.trade.wap.pay&sign=ClkejmooRph4U1jlIXmK%2BWc14jr5v0EB5qt%2Fi7zQHfPNHHOvlWL9OxCBFkVnJ5cotafq61CUQoXAVS9pcrM%2B385eC5XN9EKVEyKZbsZTrHjfUHWlS7qu4K4j5JA%2BAKHDTEy9Betk%2B9yHZMKRi3ZgrwzglInM%2FQE425ptEsBIhekKliheoIFGqbCWAtyPCLzKlWpxutTDa24UpMutwSW7pr4u7ZDKMHCepJ%2Bh0wdoeOzEf4%2F6S1vfABP2g7fxE86w97jvpH0ssdjuc1uSyzBf6bIOSx0IWSXydygG7Ajsf0pkgPFBHZoLlJmwYktk199z%2FrgFptTs%2BMqAu17mL2Le1A%3D%3D&return_url=http%3A%2F%2Flocalhost%3A8080%2Falipay.trade.page.pay-JAVA-UTF-8%2Freturn_url.jsp&notify_url=http%3A%2F%2Flocalhost%3A8080%2Falipay.trade.page.pay-JAVA-UTF-8%2Fnotify_url.jsp&version=1.0&app_id=2021001165677698&sign_type=RSA2&timestamp=2020-06-04+17%3A01%3A18&alipay_sdk=alipay-sdk-java-dynamicVersionNo&format=json'> <input type='hidden' name='biz_content' value='{&quot;body&quot;:&quot;商品名称&quot;,&quot;out_trade_no&quot;:&quot;122&quot;,&quot;product_code&quot;:&quot;QUICK_WAP_WAY&quot;,&quot;subject&quot;:&quot;12&quot;,&quot;timeout_express&quot;:&quot;2m&quot;,&quot;total_amount&quot;:&quot;1&quot;}'> <input type='submit' value='立即支付' style='display:none' > </form> <script>document.forms[0].submit();</script>");

//            }
//        });
    }

    private void aliPay(final String requestUrl) {
        Runnable payRunnable = new Runnable() {
            @Override
            public void run() {
                PayTask alipay = new PayTask(Submit0rdersActivity.this);
                Map<String, String> result = alipay.payV2(requestUrl, true);
                Log.i("msp", result.toString());
                Message msg = new Message();
                msg.what = SDK_PAY_FLAG;
                msg.obj = result;
                mHandler.sendMessage(msg);
            }
        };

        Thread payThread = new Thread(payRunnable);
        payThread.start();
    }

    private void jifezhifu() {
        //                String tvnum = tvNum.getText().toString(); //数量
        String tvname = txtName.getText().toString();//用户姓名
        String tvDahao = textDahao.getText().toString();//用户电话
        String tvDizhi = textDizhi.getText().toString();//用户地址
        String tviphoneName = tvIphoneName.getText().toString();//商品名称
//                String tvJifen = textJifen.getText().toString();//商品价格
//                String tvfreight = tvFreight.getText().toString();//运费
        String tvZong = textZong.getText().toString();//总价格
        HashMap<String, String> maps = new HashMap<>();
//                maps.put("name", "sf003");
        maps.put("num", String.valueOf(Constant.NUM));//num
        maps.put("user_name", tvname);
        maps.put("user_phone", tvDahao);
        maps.put("user_add", tvDizhi);
//                maps.put("user_id", String.valueOf(15));//用户id
        maps.put("item_img", Constant.IMG);//img
        maps.put("item_name", Constant.NAME);//tviphoneName
        maps.put("item_price", String.valueOf(Constant.SRC_PRICE));//src_price
        maps.put("item_freight", String.valueOf(freight));
        maps.put("order_price", String.valueOf(Constant.ZONG_JIA));//tvZong
        maps.put("idsa", String.valueOf(Constant.IDSAS)); //商品编号idsas
        ((SubmitPresenter) mPresenter).addOrders(maps);
    }

    @Override
    protected void initView() {
//        type_id

        typeid = getIntent().getIntExtra("type_id", 0);
//        add_price = getIntent().getIntExtra("add_price", 0);//交易价格
        num = getIntent().getIntExtra("num", 0);//交易数量
        Constant.NUM = num;

//        Intent intent = getIntent();
        boolean type_0 = getIntent().getBooleanExtra("type_0", true);
        get_name = getIntent().getStringExtra("get_name");
        get_phone = getIntent().getStringExtra("get_phone");
        get_address = getIntent().getStringExtra("get_address");
        indxler = type_0;


        getname = getIntent().getStringExtra("getname");
        getphone = getIntent().getStringExtra("getphone");
        getaddress = getIntent().getStringExtra("getaddress");
        int indx_0 = getIntent().getIntExtra("indx_0", 0);
        type = indx_0;
    }

    @Override
    protected void initData() {//typeid
        ((SubmitPresenter) mPresenter).submit(typeid);
    }


    @Override
    public void submitRetrun(SubmitBean submitBean) {


        Integer is_id = submitBean.getUser_address().getId();
        if (is_id != Constant.IS_ID) {
            reOn.setVisibility(View.GONE);
            Toast.makeText(context, "有地址", Toast.LENGTH_SHORT).show();
        } else {
            reSiteOk.setVisibility(View.GONE);
            Toast.makeText(context, "无地址", Toast.LENGTH_SHORT).show();
        }
//        items
        SubmitBean.ItemsBean items = submitBean.getItems();
        if (items != null) {
            String namess = items.getName(); //产品名称
            //运费
            freight = items.getFreight();
            img = items.getImg(); //图
            //产品价格
            src_price = items.getPrice();
            idsas = items.getIdsa(); //商品编号

            Constant.IMG = img; //图
            Constant.NAME = namess; //产品名
            Constant.FREIGHT = freight;
            Constant.SRC_PRICE = src_price;//产品价格
            Constant.IDSAS = idsas; //商品编号
            Constant.ZONG_JIA = src_price * num + freight; //总价
            Glide.with(context).load(Constant.IMG).into(im_); //img
            tvIphoneName.setText(Constant.NAME);//namess
            textJifen.setText(Constant.SRC_PRICE + "积分");//src_price
            tvFreight.setText(Constant.FREIGHT + "积分");//freight
            tvNum.setText("X" + Constant.NUM);//num
            //add_price
            textZong.setText(Constant.ZONG_JIA + "");//总价钱(src_price * num + freight)
            tvJifenOn.setText(Constant.ZONG_JIA + "积分");//(src_price * num + freight)

        }
        SubmitBean.UserAddressBean user_address = submitBean.getUser_address();
        if (user_address != null) {
            String name = user_address.getName();//用户姓名
            String phone = user_address.getPhone();//手机号
            String user_name = user_address.getUser_name();//用户账号
            String address = user_address.getAddress();//用户地址
//            tvOrderNum.setText("订单号 "+phone);
            if (indxler == true) {
                txtName.setText(name);
                textDahao.setText(phone);
                textDizhi.setText(address);
            } else {
                txtName.setText(get_name);
                textDahao.setText(get_phone);
                textDizhi.setText(get_address);
            }
            if (type == 100) {
                txtName.setText(getname);
                textDahao.setText(getphone);
                textDizhi.setText(getaddress);
            }


        }
    }

    @Override
    public void addOrderRean(AddOrderistBean addOrderistBean) {
        if (addOrderistBean != null) {
            int order_state = addOrderistBean.getOrder_state();
            if (order_state == Constant.ORDER_STATE_0) {
                Toast.makeText(context, "提交订单成功", Toast.LENGTH_SHORT).show();
                Intent intent2 = new Intent();
                intent2.setClass(context, MainActivity.class);
                intent2.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
                intent2.putExtra("id", Constant.TWO_TYPE_3);
                startActivityForResult(intent2, Constant.TWO_TYPE_3);
                finish();
            } else if (order_state == Constant.ORDER_STATE_4) {
                LayoutInflater inflater = getLayoutInflater();
                //引入自定义好的对话框.xml布局
                View layout = inflater.inflate(R.layout.is_submit_layout, null);
                //实列提示对话框对象,并将加载的试图对象设置给对话框对象
                final AlertDialog alertDialog = new AlertDialog.Builder(this).setTitle(" ").setView(layout).show();
                final RelativeLayout yes = layout.findViewById(R.id.relative_update);
                final RelativeLayout no = layout.findViewById(R.id.relative_cancel);
                yes.setOnClickListener(new View.OnClickListener() {  //是
                    @Override
                    public void onClick(View v) {
                        alertDialog.dismiss();
                        Toast.makeText(context, "还未实现,敬请期待!", Toast.LENGTH_SHORT).show();
                    }
                });
                no.setOnClickListener(new View.OnClickListener() {  //否
                    @Override
                    public void onClick(View v) {
                        alertDialog.dismiss();

                    }
                });
            }
        }
    }

    //支付宝返回值
    @Override
    public void alipayRean(AliPayBean aliPayBean) {
        if (aliPayBean != null) {
            String resultStatus = aliPayBean.getBody();
            if (resultStatus != null) {
                aliPay(resultStatus);
            } else {
                return;
            }
        }
    }
}

相关文章

  • 支付宝支付(复制直接用)

    此文章仅供参考,实现为简单的支付流程效果,如果各位访友有更好的见解,请留言,欢迎学术交流。下面为实现步骤: 配置S...

  • 支付宝小程序之复制功能

    支付宝小程序与微信小程序复制功能对比: 1.微信小程序之复制功能 2.支付宝小程序之复制功能

  • 西安行程规划

    记得下个高德地图(这个是必须的),支付可以用微信,如果你有支付宝的话,直接用支付宝就可以乘坐地铁了,不然就得去买票...

  • ios支付宝支付集成及实现

    1、开始下载和查看支付宝支付的Demo。 我们直接进入支付宝的支付平台参考来进行集成支付宝支付: https://...

  • 支付宝支付开发IOS图文教程

    1、开始下载和查看支付宝支付的Demo。 我们直接进入支付宝的支付平台参考来进行集成支付宝支付: https://...

  • Android:支付宝支付封装

    集成支付宝APP支付 直接按照官方文档逐步集成官方文档:支付宝APP支付官方文档 Android客户端封装支付宝支...

  • 再干一票,过个好年

    一大早,支付宝存在致命漏洞的消息刷爆了各大微信群:用别人的支付宝账号登录手机支付宝,点击忘记密码,输入账号后直接点...

  • 免费领取支付宝红包

    刚才看了篇文章,大概如下:ios用户复制下面代码,打开支付宝即可领取随机的红包 或者用户复制下面代码,打开支付宝随...

  • iOS 支付宝支付/最新的支付宝支付详解

    首先,支付宝支付的流程大致如下: 1、下载和查看支付宝官方Demo 直接进入支付宝的支付平台下载:doc.open...

  • iOS 支付宝支付/最新的支付宝支付详解

    首先,支付宝支付的流程大致如下: 1、下载和查看支付宝官方Demo 直接进入支付宝的支付平台下载:doc.open...

网友评论

      本文标题:支付宝支付(复制直接用)

      本文链接:https://www.haomeiwen.com/subject/qfsrxktx.html