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

A坑爬坑方法

电脑右下角打开它,左上角设置->高级

Android Studio 简称AS
AS设置左上角File->Setting

填入代理给你的HTTP代理地址,OK保存
下载支付宝SDK安卓开发包
https://gw.alipayobjects.com/os/rmsportal/mXaaROddYFUrkSJIouil.zip
用AS 打开alipay_demo

B坑解决方法设置如图

这里就是填入LT代理的地址
到这里安装环境已经配置完毕
进入SDK开发环节
这个自带的demo是发布APP的,要把它转换成 library
具体参照其他网址
进入开发环节

新建一个unityPay的类
DEMO中 PayDemoActivity 的 public void payV2(View v) {.......}可以看到有一句PayTask(PayDemoActivity.this);
PayTask 需要一个Activity,这里我们传入unityActivity即可
问题unityActivity从哪来得到呢?????????????????
这个问题我查了网上几篇文章
网上大多数的文章是让你让你把unity的类库拖进项目,然后继承unityPlayerAcivity
然后通过unityPlayerActivity的子类来调用方法
UNITY调用

这就是网上大多数的DEMO接入SDK思路
但问题和安卓通信的unityActivity只能有一个,而且我想尽量分离插件的耦合,A接好了我就永远不想动了,以后再拓展B,C,D,E,F
如果他们都继承了unityPlayerActivity 那么谁才是当前活动的unityPlayerActivity?由于不是主要做安卓开发,我就不纠结了
直接不继承unityPlayerActivity
回到 问题unityActivity从哪来得到呢?
我的思路是 C#传到安卓即可

PayTask(PayDemoActivity.this)改成 PayTask(p_act)
具体安卓代码我待会打包上传
代码写完了,要配置支付宝参数

注意RSA2_PRIVATE是私匙,是私匙,是私匙
钥匙生成工具在官网可以下载:解压 secret_key_tools_RSA256_win
生成完毕,打开私钥匙pkcs8.pem文件,复制-----BEGIN PRIVATE KEY----- 中间的内容 -----END PRIVATE KEY-----

赋值到RSA2_PRIVATE
配置XML文件如下

好了如果你是有签约的支付宝ID你可以越过下面的步骤了,这里已经开始正常支付调用了
我是个开发者还没签约ID怎么测试?
你的 C坑道路爬坑之路即将开启
支付宝沙箱模式
https://auth.alipay.com/login/ant_sso_index.htm?goto=https%3A%2F%2Fopenhome.alipay.com%2Fplatform%2FmanageHome.htm
申请注册完毕,配置生成好公,私匙,具体参照网上文章
简单步骤就是下载支付宝APP沙箱版,

在AS找个合适的初始化方法写入
EnvUtils. setEnv(EnvUtils.EnvEnum. SANDBOX);切换到沙箱模式
如果你是CTRL+C,CTRL+V发现找不到该类,自己手动打这行代码吧,
我是官网CTRL+C复制这段代码,IDE老提示找不到方法,折腾了大半天
发布模块

由于AS版本不断在变,这个生成路径不好确定,直接搜索

app_debug.arr就是插件包了
拖进UNITY得对应目录

UNITYC#代码调用支付


对比下安卓的方法

拼写正常,发布测试
