我给你一颗糖,你看到我给他两颗,你就对我有看法了.
但你不知道他也曾给我两颗糖,而你什么都没给过我.
较之微信支付的SDK,阿里支付的集成确实是步骤多了些,集成过程中稍不注意就可能出现错误.
一般建议是,如果一个SDK提供有cocoPod的集成通道,那么优先选择使用cocopod. 一来是项目结构不会变的凌乱,二来,也不需要再额外的配置诸多环境,当前微信支付已经提供了cocopod集成,而在alipay文档中,暂还没有发现提供cocopod支持. 故,阿里支付仍然使用直接拖入SDK的方式. 根据其提供的API,也可以顺利集成.
签名&流程
需要注意的是,支付宝的签名生成步骤必须在服务端完成,生成签名的方式按照官方提供说明即可. 一个大致的流程就是,先用工具生成一个商户公钥和私钥,将商户公钥上传到支付宝后会生成一个支付宝公钥,后台拿到支付宝公钥并加上商户私钥就可以生成签名sign.
错误码
在调试的过程中,可能出现一些问题. APP端SDK所需参数均需要从服务器提供(如appid、订单号...),APP仅需要接受服务器数据并传给SDK即可. 此时会唤起本地的支付宝APP. 但可能出现一些参数错误,会提示不同的错误码(导致支付失败). 具体对照蚂蚁金服FAQ即可解决.
后台事项
后台集成SDK只需要参照API文档封装必要的参数,非必须的参数则视需求而定就好. 要注意的是,只需要将SDK生成的请求参数发给客户端就行,不需要对结果再进行一次单独的编码(如UIF-8encode). 如果后台人员对SDK生成的请求参数再进行一次编码,那么会导致客户端SDK请求参数错误,出现一些未知的支付失败异常.
结语
最后,要说明的是支付失败的99%原因都是服务器返回的参数不正确. 可以与后台联调.