支付宝开放平台上有大量文档与API,可以在上面找到所需要的资料。

H5支付属于支付宝移动支付功能,可在链接中点击“SDK&DEMO下载”,将SDK与DEMO下载到本地。

将客户端的DEMO用Android Studio 2.0以Gradle方式打开(直接import进来失败,小白不清楚是啥情况)。然后就可以将DEMO写入手机或者模拟器中了。


一、支付宝SDK的支付方式:

        DEMO中有两种支付方式:


“支付”用于APP内调用(WebView内)支付宝SDK,“网页支付转native”用于H5页面调用支付宝SDK。

本文只使用“网页支付转native”功能。APP内调用一般用于商家的APP,此时需要用到商家在支付宝开放平台的相关信息(公钥,私钥,支付宝账号等),有兴趣的同学可以去注册一个账号试一试。

两种支付方式都会先查移动设备是否有支付宝客户端,如果有则打开客户端完成支付,如果没有则使用jar包内部的H5页面完成支付。


二、H5调用支付宝SDK集成方式:

2.1  添加权限:    在AndroidManifest.xml中添加以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2.2 引入alipaySdk: 将DEMO里/libs/目录下的alipaySdk-20160516.jar与android-support-v13.jar引入到工程中,若工程中已经有v13.jar包,则只需引入alipaySdk-20160516.jar。

将jar包拷贝到工程中的libs目录下;

将项目的展示方式切换成"Project",在app目录下的build.gradle里添加依赖:

dependencies {
    compile files('libs/alipaySdk-20160516.jar')
    compile files('libs/android-support-v13.jar')
}

点击右上角的同步(Sync Now);


在项目中新建一个用于监测H5支付页面的Activity,并将DEMO中的H5PayDemoActivity.java中内容拷贝到Activity中;

2.3 在外部Activity调用H5页面,使用下面函数实现:

(View v) {
    Intent intent = Intent(H5PayDemoActivity.)Bundle extras = Bundle()String url = extras.putString(url)intent.putExtras(extras)startActivity(intent)}

为了简单起见,本文使用按键直接执行这个函数:

<Button
   android:id="@+id/h5pay"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_margin="10dp"
   android:onClick="h5Pay"
   android:text="网页支付转native"/>

点击后会弹出H5PayDemoActivity这一Activity,在Activity中加载url对应页面,在页面中需要支付时,会自动调用alipaySdk实现。

其监听功能实现于H5PayDemoActivity.java中的

shouldOverrideUrlLoading

方法中。


PS:使用这个DEMO时,有个问题,若没有安装客户端,从H5的支付界面取消支付时会弹回空白的Activity,如何修改这个还得慢慢折腾了,毕竟小白一枚