Unity接入微信APP支付(超详细)

本文详述了Unity接入微信APP支付的全过程,包括理解支付流程、申请权限与配置应用信息、导入Unity使用的Jar包、Android开发环境部署、SDK集成、测试等步骤。关键点包括确保Unity的packname与应用包名一致、使用正确签名,以及处理keystore和应用签名问题。文章适合无SDK接入经验的开发者参考。
摘要由CSDN通过智能技术生成

前言

前文提到的苹果支付刚接完不久,项目又有了新的需求—android手机需要接入微信app支付。。。好吧,研究了微信支付官方的接入文档和官方demo,踩过大大小小无数的坑终于支付成功了!本文主要梳理下自己的工作以备以后不时之需!

微信app支付流程

和前文提到的苹果内购一样,在接微信app支付前我们需要先来大体了解下微信app支付的流程是怎样的:
在这里插入图片描述

这是微信官方给出的微信APP支付的业务流程,图示已经很详细了,作为前端我们要做的主要就是(2)选择商品下单;(3)请求生成支付订单(9)利用支付参数和SDK 拉起微信支付;以及最后的订单验证(这一步一般都是放在服务器),验证通过后客户端就算购买成功了。我会尽量写详细一些,因为如果以前没有接入SDK的经验,一些简单的细节确实很容易让你浪费好多的时间(哈,我自己就是-_-||)

申请权限&配置app信息

首先我们需要到https://pay.weixin.qq.com微信官方支付平台申请账号支付权限(需要提交一些申请资料然后等待1-3天通过审核,因为这个是公司策划申请的我也不太清除其中细节,估计都是些按部就班的步骤,所以就不一一细说了),申请过后你就可以注册自己的应用了,注册成功通过审核后你的app信息会包含一些很重要的信息;AppID,AppSecret(这个我们客户端用不到,这个服务器请求微信的预支付订单用到的),当然有个界面非常重要:在这里插入图片描述
这个应用包名需要和你的unity的packname一致,而且应用签名不要随便填,这个需要微信给的工具测出来的,上面的一些信息我会在后面详细的说怎么用的!

导Unity使用的Jar包

Android开发环境部署

这里我是使用的Eclipse打的jar包,这里你首先需要把你的Android开发环境部署好,可以去参考这位大佬的文档,这里记录一下我碰见的一个坑,因为我电脑上同时安装了AndroidStudio和Eclipse,所以在部署ADT的时候SDK启动闪退,查了很多资料发现这是因为AndroidStudio和Eclipse同时使用了一个SDK,AndroidStudio这个软件会把使用的SDK里面的一些目录文件结构破毁掉,导致Eclipse识别不了启动失败,这里建议不要同时安装上述两个软件,如果非要使用可以复制两个SDK,分开使用就可以了,最后莫得办法我只好花费了一上午重新安装下SDK,问题解决!

SDK

这里首先你要有一定的Unity和Android交互的基础,网上有许多交互的小例子可以自行百度下(一定要先学会交互在尝试接入sdk,这很重要,会让少走很多弯路),不过大部分都只是罗列出来一堆代码,只能让人知其然不知其所以然,有时间我会记录一下详细的unity和android交互的文档,下文中我也会在一些细节上详细标注下。
为了方便我们可以去微信支付官网去把他的DEMO下载下来然后根据需求去修改就可以了,当然了一般接入SDK有两种方式第一种是把我们的项目导出一个安卓工程放在eclipse接入,还有一种是在eclipse导出我们做好的jar包在unity使用(这两种方式第一种适合项目的SDK二次开发,第二种比较简单直接),这里我是使用的第二种方式,下载下来Demo会有许多错误,基本上都是缺少类库,把相应的类库添加上就好了,Demo大概是这种结构:在这里插入图片描述
Demo里面有其他的一些功能,我们只接入微信支付,所以可以把其他的功能干掉,当然了下面代码我都是用最简洁的方式去实现功能便于理解,可以参考一下我的目录:
在这里插入图片描述
其中MainActivity是我自己创建的继承UnityPlayerActivity的一个类(会交互的应该都知道。。。),LogUtil是一个工具类不用管,然后就可以在这基础上修改了,enmmm挨个来看吧,其中掺杂着一些个人的理解(仅作参考),先来看AppRegister类:
在这里插入图片描述
这个类不需要改动,这个类是把你的AppID注册到微信应用,没有其他的作用。
Constants类:在这里插入图片描述
这个类就是一个数据类,存储我们的应用AppID,改成自己的AppID就好了,MD5和Util没有什么改动,而且是工具类就不贴图了,我们主要看一下MainActivity,PayActivity,WXPayEntryActivity这三个核心功能类;
在这里插入图片描述
这个就是我们自己创建的类了,当然了这个也是和我们unity交互的核心类,这里面你可以写你自己的交互流程,为了演示方便我就直接用最简单直接的方法了,直接把拉起微信支付的参数传递过来用自定义的WeixinPay方法接收,

(这里说明一下这些参数的来源,这个就是前后端自己商议的接口,前端把商品购买信息传递给后端,后端拿到数据后会根据微信支付官方提供的参数算法访问预支付订单接口,这个接口返回值就包含这些参数,然后会把这些参数传递给前端,你就拿到了!(理解流程就好,这里大部分工作都是后端做的,你只需要接收就好了)
然后我们在方法内去定义生成一个Demo给的一个支付类PayActivity,并且把参数传递过去,然后启动这个类startActivity!
在这里插入图片描述
这个就是拉起微信支付的类了,很简单也很好理解, 上面在MainActivity方法内传递过来的参数接收后利用微信给出的WXAPIFactory类发送数据!这一步在应用中表现就是跳出你的应用去拉起微信内支付了,也就是说如果你的代码没有问题到了这一步就已经能拉起微信支付了(当然要包括unity的设置内容。。。这个后面说),然后我们来看最后一个类WXPayEntryActivity:在这里插入图片描述
这个类就是微信支付后的接收类了,我简单改了下官方Demo接收逻辑,这样更好理解

  • 11
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值