android支付宝调用

来源:互联网 发布:家具市场数据分析 编辑:程序博客网 时间:2024/06/08 14:08

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 );    }};






原创粉丝点击