一、前记
可以下载微信提供的官方DEMO照着写,基本功能大致就够了。
二、导入SDK(搭建环境)
虽然主要工作都在服务器端,不过要调起微信,所以还是需要有个SDK的。
为了方便SDK升级,考虑到部分功能调整,可以对SDK做封装,这样即使微信SDK大改对项目直接伤害会很小。同样,能更新SDK也建议更新SDK。
导入SDK记得还要导入SDK依赖的库。
需要注意一点需要在Build Settings->Other Linker Flags设置-ObjC。
附:主要是因为OC语言中类别,Unix的标准静态库实现和Objective-C的动态特性之间有一些冲突:OC没有为每个函数(或者方法)定义链接符号,它只为每个类创建链接符号。这样当在一个静态库中使用类别来扩展已有类的时候,链接器不知道如何把类原有的方法和类别中的方法整合起来,就会导致你调用类别中的方法时,出现错误。为了解决这个问题,引入了-ObjC标志,它的作用就是将静态库中所有的和对象相关的文件都加载进来。
另外还有两个方法,分别是用来全部导入和部分导入。使用-all_load 或者-force_load标志,它们的作用都是加载静态库中所有文件,不过all_load作用于所有的库,而-force_load后面必须要指定具体的文件。
需要配置URL Type微信相关
三、实现微信支付
注册,把注册码调用注册方法传进去。
客户端需要一个发起支付的方法
请求商户服务器获取预付单ID(prepay_id)
请求微信支付SDK,发起支付。
之前服务器返回是一个Model,所以可以建一个模型类,接收到服务器返回的数据时,直接转为模型。
之前提到了,签名有很多需要注意的地方。一不小心,签名失败。
当一切顺畅,支付成功时。
下一篇:007-移动支付05-微信支付-安卓客户端开发