赞
踩
android客户端调用支付宝,主要是获取订单信息后,唤起对应支付平台进行支付业务
操作流程,小白表示对整体的流程不是很清楚,这里只是大致说下测通支付流程
第一步:仿照文档上写,
地址:支付宝集成流程
导入jar包,配置写进去,混淆一般都要写的,写好之后
回去看看支付宝的demo,看看PayDemoActivity
我标记了orderInfo ,这个是订单,这个很重要,
不需要支付宝登录的话里面的授权就无视他就好了,还有的就是那个H5pay也可以无视,demo里面只是为了展示,sdk里面有所以项目中就不用在写了,
在看下面这句话
是启动的方法,请求数据的时候用到,
准备好了之后就开始写了
假如你有一个按钮 你写了一个方法
flag是判断方法,请无视呢,
先定义订单:String orderInfo= "";
把demo的全部复制过来吧,一行一行写估计很多人不明白
我要说几点NetUtils 是项目中封装的请求数据的类,CardPay是一个bean,自己写的,
我这个是购卡,请求后台一个用户id和卡的编号,这些都是自己项目的需求写的。
主要是拿到数据后发送请求,
Thread payThread = new Thread( payRunnable ); payThread.start();那个PayResult直接从demo复制过来就行,
这样就能吊起支付宝了,(支付那些流程了现在换不是很清楚,配置好多都是在后台做的,自己没有尝试去做,有机会弄清楚了在写一篇支付,有不清楚的可以私聊我,项目已经接通。)
String orderInfo = ""; private void zhifubaopay() { setProgressContent("请求中"); showProgressDialog(); Pay z = new Pay(); z.setAccount_Id(mUser.getAccount_Id()); z.setMerName(merName); z.setMerCode(merCode); z.setSerCode(serCode); z.setPayMethod(2); NetUtils.getInstance().post(Constant.ServicePayment, z, new NetUtils.NetDataBack() { @Override public void onback(String s, Call call, Response response) { Gson gson = new Gson(); PayWeixin p = gson.fromJson( s, PayWeixin.class ); if (p.getResultCode().equals( Login.RIGHT_CODE )) { orderInfo = p.getJsonData().getOrdercode();//从Ordercode中拿到数据 Thread payThread = new Thread( payRunnable ); payThread.start(); dissmissProgressDialog(); } else { showToast( "支付失败" ); } } @Override public void onError(String error) { } } ); } private static final int SDK_PAY_FLAG = 1; @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" )) { // 该笔订单是否真实支付成功,需要依赖服务端的异步通知。 Toast.makeText(PayActivity.this, "支付成功", Toast.LENGTH_SHORT ).show(); } else { // 该笔订单真实的支付结果,需要依赖服务端的异步通知。 Toast.makeText(PayActivity.this, "支付失败", Toast.LENGTH_SHORT ).show(); } break; } } } }; Runnable payRunnable = new Runnable() { @Override public void run() { PayTask alipay = new PayTask(PayActivity.this ); Map<String, String> result = alipay.payV2( orderInfo, true ); Log.i( "msp", result.toString() ); Message msg = new Message(); msg.what = SDK_PAY_FLAG; msg.obj = result; mHandler.sendMessage( msg ); } };
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。