Unity群里一个大佬的技术分享,我也转载过来方便日后查阅,有需要转载的,请注明出处QQ280442832
操作步骤性这东西,时间长了就难免忘记,以防日后要接的时候再次爬坑
目标:导出支付宝插件包(arr包)给UNITY调用
主要三大坑:
A坑 Android Studio的安装和配置 提示少这少那,但又下载不了
B坑 导出Jar包时总是下载不了需要的文件
C坑 写完了代码 没有企业资质如何测试
![](https://i-blog.csdnimg.cn/blog_migrate/2ce51b11e7e25b582f1b1ddec29c7196.jpeg)
A坑 爬坑方法
![](https://i-blog.csdnimg.cn/blog_migrate/73b8ed5f1e88021e2ec87da508d06fcd.jpeg)
电脑右下角打开它,左上角设置->高级
![](https://i-blog.csdnimg.cn/blog_migrate/0bd4756e35bdb36b78205b97ca444f12.jpeg)
Android Studio 简称AS
AS设置左上角File->Setting
![](https://i-blog.csdnimg.cn/blog_migrate/76d315ba36a072cbd150543bec35bafd.jpeg)
填入代理给你的HTTP代理地址,OK保存
下载支付宝SDK安卓开发包
https://gw.alipayobjects.com/os/rmsportal/mXaaROddYFUrkSJIouil.zip
用AS 打开alipay_demo
![](https://i-blog.csdnimg.cn/blog_migrate/e1b77f3616921cd185d46344ed9b4b2f.jpeg)
B坑 解决方法设置如图
![](https://i-blog.csdnimg.cn/blog_migrate/74b8192fab0738a6de666f728566937d.jpeg)
这里就是填入LT代理的地址
到这里安装环境已经配置完毕
进入SDK开发环节
这个自带的demo是发布APP的,要把它转换成 library
具体参照其他网址
进入开发环节
![](https://i-blog.csdnimg.cn/blog_migrate/fbfa4e990c43b83f7daf01156408dbfa.jpeg)
新建一个unityPay的类
DEMO中 PayDemoActivity 的 public void payV2(View v) {.......}可以看到有一句PayTask(PayDemoActivity.this);
PayTask 需要一个Activity,这里我们传入unityActivity即可
问题unityActivity从哪来得到呢?????????????????
这个问题我查了网上几篇文章
网上大多数的文章是让你让你把unity的类库拖进项目,然后继承unityPlayerAcivity
然后通过unityPlayerActivity的子类来调用方法
UNITY调用
![](https://i-blog.csdnimg.cn/blog_migrate/ecb0c93740d028169b6b8e697301c2b2.jpeg)
这就是网上大多数的DEMO接入SDK思路
但问题和安卓通信的unityActivity只能有一个,而且我想尽量分离插件的耦合,A接好了我就永远不想动了,以后再拓展B,C,D,E,F
如果他们都继承了unityPlayerActivity 那么谁才是当前活动的unityPlayerActivity?由于不是主要做安卓开发,我就不纠结了
直接不继承unityPlayerActivity
回到 问题unityActivity从哪来得到呢?
我的思路是 C#传到安卓即可
![](https://i-blog.csdnimg.cn/blog_migrate/e2cb1999e47d52b2850a8bebd4cabb2e.jpeg)
PayTask(PayDemoActivity.this)改成 PayTask(p_act)
具体安卓代码我待会打包上传
代码写完了,要配置支付宝参数
![](https://i-blog.csdnimg.cn/blog_migrate/c78938edf62e4d1eac0a929feacf66a6.jpeg)
注意RSA2_PRIVATE是私匙,是私匙,是私匙
钥匙生成工具在官网可以下载:解压 secret_key_tools_RSA256_win
生成完毕,打开私钥匙pkcs8.pem文件,复制-----BEGIN PRIVATE KEY----- 中间的内容 -----END PRIVATE KEY-----
![](https://i-blog.csdnimg.cn/blog_migrate/996f88e2c87edd3b10eef56aa8fc6743.jpeg)
赋值到RSA2_PRIVATE
配置XML文件如下
![](https://i-blog.csdnimg.cn/blog_migrate/4abb0146184ff512584ba9c8f499cbc8.jpeg)
好了如果你是有签约的支付宝ID你可以越过下面的步骤了,这里已经开始正常支付调用了
我是个开发者还没签约ID怎么测试?
你的 C坑 道路爬坑之路即将开启
支付宝沙箱模式
https://auth.alipay.com/login/ant_sso_index.htm?goto=https%3A%2F%2Fopenhome.alipay.com%2Fplatform%2FmanageHome.htm
申请注册完毕,配置生成好公,私匙,具体参照网上文章
简单步骤就是下载支付宝APP沙箱版,
![](https://i-blog.csdnimg.cn/blog_migrate/0ef9319fe37b950446af17c60f7025e2.jpeg)
在AS找个合适的初始化方法写入
EnvUtils. setEnv (EnvUtils.EnvEnum. SANDBOX );切换到沙箱模式
如果你是CTRL+C,CTRL+V发现找不到该类,自己手动打这行代码吧,
我是官网CTRL+C复制这段代码,IDE老提示找不到方法,折腾了大半天
发布模块
![](https://i-blog.csdnimg.cn/blog_migrate/05fc52b69cde7ed4c59abb88002626fe.jpeg)
由于AS版本不断在变,这个生成路径不好确定,直接搜索
![](https://i-blog.csdnimg.cn/blog_migrate/7cfa144419a8c111e84effee1bc9db4e.jpeg)
app_debug.arr就是插件包了
拖进UNITY得对应目录
![](https://i-blog.csdnimg.cn/blog_migrate/4ce04fabfd8af688bbbad9c3aa44013a.jpeg)
UNITYC#代码调用支付
![](https://i-blog.csdnimg.cn/blog_migrate/94609cabf8e4e453044ed2fd917fbd10.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/fd2a167a2378880867d1e596cab5b112.jpeg)
对比下安卓的方法
![](https://i-blog.csdnimg.cn/blog_migrate/c627b628db7797379198c01a0d8174a2.jpeg)
拼写正常,发布测试
![](https://i-blog.csdnimg.cn/blog_migrate/9aa75845572fcaacaa1fee9a1b67d99f.jpeg)