Unity(Android端)支付接口快速入门,个人开发者也能有收入
来源:互联网 发布:tomcat怎么看端口 编辑:程序博客网 时间:2024/04/19 05:58
支付接口是bmob为广大开发人员提供的统一、正规的收费手段,让没有企业认证的个人开发者,也能通过支付宝和微信向用户收费。
戳这里去网盘下载Demo.apk
戳这里去网盘下载Demo.unitypackage
看看效果图:
是不是很诱人~~~下面看看怎么接入吧。
第零步!
前往bmob注册一个你自己的账号,然后登录账号创建应用,在“应用面板->数据浏览->应用信息->应用密钥->Application ID”即可获得APPID。然后,前往下载页面,在页面找到Android支付 SDK下载,里面的unity文件夹就包含了所需的sdk和接入文档的md文件,步骤挺详细的。
下面我把他的文档贴出来给大家看看:
Bmob Unity Android支付接入文档
添加相关文件,将下载的plugins文件夹放进Assets目录下
Plugins/Android/libs目录包括
<BmobPay_UnityHelper_v1.x.x_xxxxxx.jar>
、<BmobPay_v3.x.x_xxxxxx.jar>
和<xxx/libbmobwpay.so>
,so文件按项目需求添加注意:so文件全部添加有可能导致编译不通过的错误,这时留下
armeabi
、armeabi-v7a
和x86
三个目录即可编译通过Plugins/Android/assets目录包括
<payassets.db>
修改AndroidManifest.xml,两种方式二选一
方法一:
将下载的支付SDK的
AndroidMenifest.xml
文件打开(比如用sublime打开),把包名修改成你的包名:package="你的包名"
package="xx.xx.xx"
- 再把修改完成后AndroidMenifest.xml文件的放进
Plugins/Android
目录下
方法二:
- 如果你的项目需要更多的设置,可以从你的unity项目Export出
googleAndroidProject
,导出来的googleAndroidProject里面会自动生成AndroidManifest.xml文件。 在生成的AndroidManifest.xml文件中添加下添加上网权限、读写权限:
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
在AndroidManifest.xml文件中添加下免责Activity
<activity android:name="cn.bmob.pay.v3.act.PayAct" />
注意:这个是在运行时加载的类,可以忽略IDE给出的红色标识
- 再把修改完成后AndroidMenifest.xml文件的放进Plugins/Android目录下
初始化ApplicationID
在Start()方法中调用如下方法:(Application ID在后台应用管理的 数据浏览->应用信息->应用密钥->Application ID,如果appKey为空或者混淆规则不正确,会抛出IllegalArgumentException异常,因为init是异步的,越早初始化越好。注意:支付时报234的错误可能是应用没有进行支付审核,新应用200块以下支付不用审核也可以测试,超过了就要赶紧去申请审核啦)
AndroidJavaClass jc = new AndroidJavaClass("cn.bmob.pay.UnityHelper");jc.CallStatic("init","Application ID");
发起支付调用:
发起支付调用,请使用如下方法:
/** * 全部参数都是String类型 * 第1个参数不能修改,是UnityHelper.jar中预设的支付方法名 * 第2个参数是商品的名称,请注意不要有违禁字眼,可以为空 * 第3个参数是商品的详情描述,请注意不要有违禁字眼,可以为空 * 第4个参数为时为支付金额,(微信支付和QQ支付,订单金额要求 >= 2.2元) * 第5个参数为"0"时调用支付宝支付,为"1"时调用微信支付,为"2"时调用QQ支付 * 第6个参数为监听对象,Unity内某GameObject(etc. 'Main Camera') */AndroidJavaClass jc = new AndroidJavaClass("cn.bmob.pay.UnityHelper");jc.CallStatic("pay","商品名", "商品描述", "0.02", "0", "Main Camera");
找到上一步骤设定的监听对象GameObject,在其绑定的脚本中添加如下回调方法(方法名必须相同):
/* * * 无论支付成功与否,只要成功产生了请求,就返回订单号,请自行保存 * 以便以后查询*/void OnPay_OrderId(string orderId){ // 此处应该保存订单号,比如保存进数据库等,以便以后查询(比如用户在跳转支付时,本app被杀了,OnPay_Succeed的代码没有被调用) //本app被杀掉,这种情况可填写<支付结果的异步通知URL>(URL格式: http://cloud.bmob.cn/应用的SecretKey/云端逻辑的名称)解决,结合[云端代码]来使用(具体看文档 https://docs.bmob.cn/pay/Android/b_developdoc/doc/index.html#支付回调 、 https://docs.bmob.cn/cloudcode/WEB/a_faststart/doc/index.html#创建云端逻辑 和 https://docs.bmob.cn/cloudcode/WEB/b_developdoc/doc/index.html#云端逻辑模块解释 )// 内存很吃紧的老款手机,在打开支付宝或者微信的时候可能导致你自己的app被系统杀掉,这种情况可以通过在后台(支付-配置信息-服务端部署配置)填写<支付结果的异步通知URL>解决(这个URL格式是 http://cloud.bmob.cn/应用的SecretKey/云端逻辑的名称),结合[云端代码](不会的看文档https://docs.bmob.cn/cloudcode/WEB/a_faststart/doc/index.html 和 https://docs.bmob.cn/pay/Restful/b_developdoc/doc/index.html#查询订单)来使用 print("OrderId = " + orderId);}/* * * 支付成功,保险起见请调用查询方法确认结果*/void OnPay_Succeed(string s){ print("Pay Succeed");}/* * * 支付失败*/void OnPay_Fail(string reason){ //reason实际为 code+":"+reason print("Pay Fail, "+reason); // 不会看App的log的朋友,建议测试时用个GUI Text把这些结果输出来,不然错误了没输出啥也不知道}
订单查询
在需要调用订单查询的地方,调用如下方法(微信订单和支付宝订单通用):
/*** 全部参数都是String类型* 第1个参数不能修改,是UnityHelper.jar中预设的查询方法名* 第2个参数为时为支付订单号orderId* 第3个参数为监听对象,Unity内某GameObject(etc. 'Main Camera')*/AndroidJavaClass jc = new AndroidJavaClass("cn.bmob.pay.UnityHelper");jc.CallStatic("query","1234567890","Main Camera");
找到设定的监听对象GameObject,在其绑定的脚本中添加如下方法(方法名必须相同):
// 查询订单成功接口 void OnQuery_Succeed(string state){ print("Pay Succeed"); } // 查询订单失败接口 void OnQuery_Fail(string reason){ //reason实际为 code+":"+reason print("Pay Fail, "+reason); }
设置Debug模式,默认是关的,如果要开则传入“1”
AndroidJavaClass jc = new AndroidJavaClass("cn.bmob.pay.UnityHelper"); jc.CallStatic("setDebug","1"); //开启log,Debug_Tag为“BmobPay_Unity”
修改混淆规则(如果你需要混淆的话)
-libraryjars libs/BmobPay_v3.x.x_xxxxxx.jar -libraryjars libs/BmobPay_UnityHelper_v1.x.x_xxxxxx.jar -keepclasseswithmembers class c.b.** { *; } -keep interface c.b.PListener{ *; } -keep interface c.b.QListener{ *; }
- Unity(Android端)支付接口快速入门,个人开发者也能有收入
- Android 个人开发者接入支付功能
- Android 个人开发者接入支付功能
- Android 针对个人开发者的bmob支付
- 个人开发者使用支付
- Android开发——个人开发者接入支付功能
- 真苦逼:Android开发者收入=iOS开发者收入*7%
- leancloud网络存储,个人开发者福利。快速入门
- 2014 iOS开发者收入调查报告(一):个人开发者篇
- Android开发者如何快速进行入门开发
- 6.9 Android 支付宝 开发者平台申请和接口调用
- unity android项目如何快速接入平台支付的SDK
- 个人收入
- DoNanza:iOS开发者最吃香 Android开发者收入下降
- Yii 扩展支付宝快速支付接口
- Unity(三):快速入门
- Unity快速入门总纲
- android 支付接口
- CentOS-5的yum源无法使用问题
- centos7.3下安装jdk、tomcat、mysql
- 视频抖动检测方法
- spring基础知识总结
- ORACLE基本数据类型总结
- Unity(Android端)支付接口快速入门,个人开发者也能有收入
- 在学习过程中所练习的代码,仅供参考
- android 外部调起要注意的地方——是否需要控制访问host
- imp 导入dmp文件。
- oracle数据类型和对应的Java类型
- 三子棋游戏
- Linux环境初步简介和宏
- 【服务器】解决Linux无法上网问题
- [BIT0429]-Java 垃圾自動回收機制代碼演示