android平台下:java开发的,使用android提供的sdk开发包做。

苹果平台:IOS下的xcode工具集开发。 以及IOS(苹果操作系统)的SDK。由张小龙所带领的广州研发中心产品团队打造的 ,团队曾成功开发过Foxmail、QQ邮箱等互联网项目。
可以用java编写微信小程序提供了很丰富的组件和接口,他带了一套半Vue半React的“语言”,开发如果你是前端正好又熟悉Vue或React的话,那么就是你的菜。
开发安卓应用必然会用到java,android的界面用xml表示,应用层的都是java实现,看android的api都是java接口就知道了,至于微信,还用了jni,底层代码是C和C++实现的,如果的手机root了,可以到/data下(貌似是这个路径)看到微信的目录(com.tentent.wechat)下的lib目录下是有数个so库文件的,那么用C和C++实现微信的什么功能呢?从库的命名来看,什么加解密啊,编解码啊,网络传输基础库啊之类的,都是C和C++实现的
XML (微信在http协议中数据传输方案)
openid (OpenID是公众号一对一对应用户身份的标识)
服务端需要的核心操作, 总共分为以下几步:
前端调起微信支付必要参数 (需加密)
订单结果主动通知 (回调接口)
结束订单支付接口(关闭订单,支付订单关闭)
微信总共支持多种语言的sdk, 在官网可以下载例子, java程序也可以引入微信支付的sdk包, 但是github上的sdk已经很久没有更新了, 最好的选择, 也是我的选择, 在官网上下载sdk项目, 将其中所有java类copy到自己的项目中.
创建IWxPayConfig.class, 继承sdk WXPayConfig.class, 实现sdk中部分抽象方法, 读取本地证书, 加载到配置类中.package core.com.chidori.wxpay;
核心是支付订单回调时, 需校验加密签名是否匹配, 防止出现模拟成功通知
统一下单的签名和后续前端拉取微信支付的签名需要统一, 也就是都采用MD5加密, 如果2者不同, 会导致前端拉取微信支付fail, 这是一个巨大的坑, 因为这个原因调试了好久, 微信在文档里没有明确标出统一下单的签名校验方式 需要和前端拉取微信支付的签名校验保持一致.微信sdk里的源码需要针对这个问题调整一下, 调整如下:WXPay类需要修改下加密判断,在WXPay构造方法中,调整如下
做完以后, 微信支付的后端逻辑还是很清晰的, 但是在开发过程中很煎熬, 不清楚每个专业术语在微信哪里配置, 加密方式乱的很