此文章仅供参考,实现为简单的支付流程效果,如果各位访友有更好的见解,请留言,欢迎学术交流。下面为实现步骤:
配置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¬ify_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×tamp=2020-06-04+17%3A01%3A18&alipay_sdk=alipay-sdk-java-dynamicVersionNo&format=json'> <input type='hidden' name='biz_content' value='{"body":"商品名称","out_trade_no":"122","product_code":"QUICK_WAP_WAY","subject":"12","timeout_express":"2m","total_amount":"1"}'> <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;
}
}
}
}
网友评论