目录
效果图
关于官方的Demo
这里我们先跑一个官方给的demo试试
进入开发者平台
沙箱应用
创建一个沙箱应用
关键信息:APPID、UID、商家账号
下载他的沙箱版支付宝
如果是在模拟器运行的代码记得把这个沙箱版安装在模拟器里面
下载完成之后,可以登录(账号在上面截图的位置,每个人创建的应用不同账号也不同)进去看看,也给以试着往里面加钱,最大可以加999999999…吧…好像,要是真的就好了。。。
下载官方给的SDK
下载地址
下载解压后有几个文件(和以前的老版不一样,这个坑…老版教程不适用)
Android_Demo这个文件夹打开后的文件直接导入在Android studio里面打开
导入官方给的Demo
文件结构如下图
然后复制Android_SDK这个文件夹下的aar文件
导入SDK
指导文档
给出了新版SDK也就是后缀为aar文件和之前老版jar文件的导入区别,跟着文档来,记录一下:下面这个语句要改一下,因为文档的name和自己下的sdk版本名称可能不一致导致报错,最后同步一下项目(我的和你的版本可能也不一样,自己对着自己的版本改)
// 添加下面的内容
implementation (name: 'alipaysdk-15.8.00.201112210139', ext: 'aar')
修改APPID、PID、TARGET_ID
在PayDemoActivity这个类下修改相关参数
RSA2_PRIVATE问题也就是这个沙箱的公钥和私钥
这个要从这个软件里面获取
下载密钥工具
下载后打开工具
将生成的应用公钥复制到之前的沙箱应用管理里面
再复制之前工具生成的私钥放进代码里面
看文档好像是说的2048字节长度
最后加入这条语句EnvUtils.setEnv(EnvUtils.EnvEnum.SANDBOX);在onCreate()方法里面
应该可以运行成功的
然后下面就是改一下部署到自己项目里面
效果图的代码
SDK导入方式和前面说的一样,再然后就是将官方给的demo里面的这几个文件复制进自己项目
activity布局文件
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.newapplication.MainActivity">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/constraintLayout"
android:layout_width="match_parent"
android:layout_height="140dp"
android:layout_marginStart="10dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:layout_marginEnd="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/activity_search_tv_shape"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"><!--这个background可以删-->
<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginStart="15dp"
android:layout_marginLeft="15dp"
android:src="@drawable/ma"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /></