标签:移动支付 h5 支付宝
支付宝开放平台上有大量文档与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,如何修改这个还得慢慢折腾了,毕竟小白一枚
本文出自 “Echo和你一起飞” 博客,转载请与作者联系!
标签:移动支付 h5 支付宝
原文地址:http://5052416.blog.51cto.com/5042416/1811267