支付宝支付流程

来源:互联网 发布:淘宝评论上传不了图片 编辑:程序博客网 时间:2024/06/02 15:56
//点击支付按钮后,先请求协议
new Thread(new Runnable() {    @Override    public void run() {        Message message;        String floor = Util.GetsResult(Util.ApiUrl, getAliPayParam());        message = Message.obtain(handler, ACTION_GET_ALIPAY_INFO, floor);        message.sendToTarget();    }}).start();
String getAliPayParam() {        TreeMap<String, String> apiparamsMap = new TreeMap<String, String>();        apiparamsMap.put("orderid",ordercode);        apiparamsMap.put("totalfee",cashNeedPay);        String result = Util.ConnectSign("AliAppPay", apiparamsMap);        return result;    }

Handler handler = new Handler() {    @Override    public void handleMessage(Message msg) {        switch (msg.what) {            case ACTION_GET_ALIPAY_INFO:                String alipayInfo = (String) msg.obj;                OrderSucsseActivity.this.resolveAliPayInfo(alipayInfo);                break;
}
    }
}
void resolveAliPayInfo(String alipayInfo) {    AliPayModel baseResponse = JSON.parseObject(alipayInfo,AliPayModel.class);    if (baseResponse.getCode() == 0) {        String payInfo = baseResponse.getData();        final String orderInfo = payInfo;   // 订单信息        Runnable payRunnable = new Runnable() {            @Override            public void run() {                PayTask alipay = new PayTask(OrderSucsseActivity.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);            }        };        // 必须异步调用        Thread payThread = new Thread(payRunnable);        payThread.start();    }}
private final Handler mHandler = new Handler() {    @Override    public void handleMessage(Message msg) {        switch (msg.what) {            case SDK_PAY_FLAG: {                PayResult payResult = new PayResult((Map<String, String>) msg.obj);                Log.w("ss","支付宝支付回调信息 = " + msg.obj);                /**                 对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。                 */                String resultInfo = payResult.getResult();// 同步返回需要验证的信息                String resultStatus = payResult.getResultStatus();                // 判断resultStatus 为9000则代表支付成功                if (TextUtils.equals(resultStatus, "9000")) {                    // 该笔订单是否真实支付成功,需要依赖服务端的异步通知。                    Toast.makeText(OrderSucsseActivity.this, "支付成功", Toast.LENGTH_SHORT).show();                    Intent intent = new Intent(OrderSucsseActivity.this, MyAllOrderActivity.class);                    intent.putExtra("strOrderType", 2);                    startActivity(intent);                    hasPay = true;                } else {                    // 该笔订单真实的支付结果,需要依赖服务端的异步通知。                    Toast.makeText(OrderSucsseActivity.this, "支付失败", Toast.LENGTH_SHORT).show();                }                break;            }            default:                break;        }    }};



0 0
原创粉丝点击