Android 接入支付宝 支付

现在app 几乎都有支付的功能,而国内最便捷的支付无非就是 支付宝支付和微信支付了,相对于微信,我个人更喜欢支付宝一些, 为什么呢,懒是原罪。支付宝集成,大概app 端只需要1小时左右,debug版本的app 就可以进行拉起调试,而微信支付就不一样了,必须要正式签名,各种各样的bug,我就想微信为什么不能像百度地图的sdk 一样可以填写 debug 的SHA,啧啧。言归正传,我们来说说Android 端集成支付宝支付功能。

集成支付宝,肯定是先看支付宝官方提供的开发着文档,https://docs.open.alipay.com/54/cyz7do/,这里面是支付宝 服务端和客户端的接入文档,我们主要看 Android端的接入文档

  1. 首先,我们先集成最新的 sdk:

sdk下载链接:https://docs.open.alipay.com/54/104509

下载官方的sdk ,ex:alipaySdk-15.5.9-20181123210601.aar,随后放入你的lib 目录下,然后在你的主要build.gradle你中 的​​libm目录作为依赖仓库,主buildl.grtadle也就是你 项目最外层的目录;

allprojects {
    repositories {

        // 添加下面的内容
        flatDir {
            dirs 'libs'
        }

        // ... jcenter() 等其他仓库
    }
}
  1. 2          权限

这时候,还差的就是一些运行时权限了,但是,如果你是正常开发,权限都应该早就请求过了,如果你只是写demo,可以偷懒只在AndroidManifest里申请以下权限,然后手动在手机里给予权限

android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE
android.permission.READ_PHONE_STATE
android.permission.WRITE_EXTERNAL_STORAGE
  1. 3 使用

首先,你需要请求你 的服务端拿到 orderInfo,这个一般都是你手动提交当前订单信息给服务端,服务端进行加密,拼接数据等等一系列操作,如果你用的是最新的aar,你可以提醒你们的后台,也要用最新的文档去拼接数据,不然,会出现以下错误。

当一切数据都正确的时候,我们就可以直接调用支付宝提供给我们的方法,去拉起 支付宝支付了

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

        @Override
        public void run() {
            Log.e(TAG, "run:  支付线程");
            PayTask alipay = new PayTask(Activity.this);
            Map<String, String> result = alipay.payV2(orderInfo, true);
            Message msg = new Message();
            msg.what = SDK_PAY_FLAG;
            msg.obj = result;
            mHandler.sendMessage(msg);
        }
    };
    private Handler mHandler = new Handler() {
        public void handleMessage(Message msg) {
            payPersoncenter.requestStatus(orderNum);// 请求订单状态
        }

    };
  1. 4 拉起支付后

 

当然是支付了,支付完成后,支付宝会主动提示你支付成功,但是,你并不信任它,你可以访问你的接口服务,去查询当前订单是否支付成功,这个需要你服务端主动给支付宝提供一个http协议的接口,包含在请求支付的入参中,其key对应notify_url。支付宝服务器在支付完成后,会以POST方式调用notify_url传输数据。然后你再去访问。

Android 接入支付宝,就是以上的操作了,如果你的操作中规中矩,没玩什么太骚的操作,一般支付宝不会出现什么太大的问题,接入的话稍微快一点可能都不需要 一个小时,啧啧啧

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章