微信和支付宝支付遇到的坑

坑1:统一下单和拉起支付的appid不一致

两种支付都需要 URL Scheme,简单的说就是app的一个标识码,让第三方app知道是谁唤醒的第三方app,创建方法:

微信和支付宝支付遇到的坑_第1张图片
查找info(图1)



微信和支付宝支付遇到的坑_第2张图片
url schemes(图2)

坑:在支付宝里,URL Schemes是可以自由设置的,只需要调用方法:

微信和支付宝支付遇到的坑_第3张图片
支付宝调用支付方法(图3)

而微信支付需要在appdelegate调用注册方法:

微信需要注册方法,支付宝不需要(图4)

此时,微信支付的AppScheme,如图2,支付跳转界面会显示:统一下单和拉起支付的appid不一致;这是因为微信支付的AppScheme是发起请求后由后台返回,即返回的appid;

微信和支付宝支付遇到的坑_第4张图片
后台返回的appid(图5)

解决方法:将URL Scheme替换为微信请求返回后的appid.(个人建议支付类,先做微信支付,后做支付宝可完美避免此坑)!~~


坑2:导入微信头文件后,出现报错Apple Mach-O Linker(ld) Error(此报错无法打开)

微信注册APPID:商户APP工程中引入微信lib库和头文件,会有如下报错:

微信和支付宝支付遇到的坑_第5张图片
无法打开的报错(图6)

经过跟官方demo对比,添加发现缺少lib库,libsqlite3.0.dylib可换位libsqlite3.0.tbd

微信和支付宝支付遇到的坑_第6张图片
官方demo(图7)


坑3:支付验证签名失败

微信支付,官网只给了重要的调起支付的代码,各种检查与后台沟通,还是会"支付验证签名失败",问题在于:微信支付后台给你签证一次之后你需要自己再签证一次才不会导致签证失败!!!不论是官方文档还有demo都没有体现出来!!!

微信和支付宝支付遇到的坑_第7张图片
官网文档(图8)

再签证步骤如下:导入

微信和支付宝支付遇到的坑_第8张图片
图9

在pch文件中写入

微信和支付宝支付遇到的坑_第9张图片
图10

在签证:sign与图8不同既是

微信和支付宝支付遇到的坑_第10张图片
在签证(图11)

做了如上操作以后"支付验证签名失败"解决!~


你可能感兴趣的:(微信和支付宝支付遇到的坑)