关于android webview 端调原生app 的支付宝接口实现 还有BeeCloud(秒支付) 的接入使用

     public void pay(View v) {
        // 订单
        String orderInfo = getOrderInfo("测试的商品", "该测试商品的详细描述", "0.01");
这个里面就是我们传的产品内容。怎么传值,我就不多说了,

        // 对订单做RSA 签名
        String sign = sign(orderInfo);
        try {
            // 仅需对sign 做URL编码
            sign = URLEncoder.encode(sign, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }

        // 完整的符合支付宝参数规范的订单信息
        final String payInfo = orderInfo + "&sign=\"" + sign + "\"&"
                + getSignType();

        Runnable payRunnable = new Runnable() {

            @Override
            public void run() {
                // 构造PayTask 对象
                PayTask alipay = new PayTask(PayDemoActivity.this);
                // 调用支付接口,获取支付结果
                String result = alipay.pay(payInfo);

                Message msg = new Message();
                msg.what = SDK_PAY_FLAG;
                msg.obj = result;
                mHandler.sendMessage(msg);
            }
        };

        // 必须异步调用
        Thread payThread = new Thread(payRunnable);
        payThread.start();
    }

// 支付宝返回此次支付结果及加签,建议对支付宝签名信息拿签约时支付宝提供的公钥做验签

String resultInfo = payResult.getResult();`
还有就是,你的点击事件,用handle 做的监听:
case SDK_PAY_FLAG: {
PayResult payResult = new PayResult((String) msg.obj);
“`

            // 支付宝返回此次支付结果及加签,建议对支付宝签名信息拿签约时支付宝提供的公钥做验签
            String resultInfo = payResult.getResult();

            String resultStatus = payResult.getResultStatus();

            // 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档
            if (TextUtils.equals(resultStatus, "9000")) {
                Toast.makeText(PayDemoActivity.this, "支付成功",
                        Toast.LENGTH_SHORT).show();
            } else {
                // 判断resultStatus 为非“9000”则代表可能支付失败
                // “8000”代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)
                if (TextUtils.equals(resultStatus, "8000")) {
                    Toast.makeText(PayDemoActivity.this, "支付结果确认中",
                            Toast.LENGTH_SHORT).show();

                } else {
                    // 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误
                    Toast.makeText(PayDemoActivity.this, "支付失败",
                            Toast.LENGTH_SHORT).show();

                }
            }
            break;
        }
        case SDK_CHECK_FLAG: {
            Toast.makeText(PayDemoActivity.this, "检查结果为:" + msg.obj,
                    Toast.LENGTH_SHORT).show();
            break;
        }

所以就是没什么重点,但是我在看支付的时候看到了一个网站:http://beecloud.cn/doc/android.php#register 这个是秒支付,封装的超级好的,就是有一点;这里写图片描述
要钱的,那就算了,说重点,就是怎么配置;http://beecloud.cn/doc/ 这个事秒支付的技术文档;里面有的我就不多说,说重点,我开始看了半天,都是配置,就是没说,支付宝的PID ,KEY.放哪,找了一会,终于找到了,放到人家的服务器上,我在想,安全吗?这里写图片描述
那我就不多说了,好是好,就是用着不放心,你还收费,无语ing

猜你喜欢

转载自blog.csdn.net/u012922981/article/details/46414403