您的位置:首页 > 移动开发 > IOS开发

支付宝支付遇到的各种坑及解决问题

2017-07-06 11:46 459 查看
请根据官方文档进行配置 
http://app.alipay.com/market/document.htm?name=saomazhifu#page-22
进行支付宝支付  我们这里是后台给的商品信息字符串

- (void)payzhifubao:(NSString *)str{

    NSString *appScheme =@"alisdkdemo";

    //将商品信息拼接成字符串

    NSString *orderSpec = str;

    

    [[AlipaySDKdefaultService]payOrder:orderSpecfromScheme:appSchemecallback:^(NSDictionary
*resultDic) {

        /*

         9000 订单支付成功

         8000正在处理中,支付结果未知(有可能已经支付成功),请查询商户订单列表中订单的支付状态

         4000 订单支付失败

         6001 用户中途取消

         6002 网络连接出错

         6004支付结果未知(有可能已经支付成功),请查询商户订单列表中订单的支付状态

         其它其它支付错误

         */

        if ([resultDic[@"resultStatus"]intValue] ==9000)
{

            //支付成功

        }else{

           //支付失败

        }

    }];

}

//在你配置过程中的时候可能遇到的bug

1.Cannot find interface declarationfor'NSObject',superclassof
'Base64'

解决方案:

导入框架#import <Foundation/Foundation.h>

2.错误在openssl_wrapper.h文件中,没有该类型的属性
解决方案:

 在openssl_wrapper.m文件添加头文件:

#import <Foundation/Foundation.h> 

#import <UIKit/UIKit.h>

3.错误’openssl/asn1.h‘ file not found;

解决方案:

 Targets->Build Settings->Header SearchPath中添加我们刚新建的AliPaySDK文件夹的路径(拖拽此文件夹至输入框即可)

//在你对接支付的时候可能遇到的问题
1.支付宝支付时显示:系统繁忙,请稍后再试
解决方案:
先看参数是否齐全,再看签名,如果是后台加的签需要把+  /  
= 之类的改成ASCII 字符(十六进制格式) 

2.支付出现6002

1)在info.plist中加入安全域名白名单(右键info.plist用source code打开)。

<key>LSApplicationQueriesSchemes</key>
<array>
<string>mqqOpensdkSSoLogin</string>
<string>mqzone</string>
<string>sinaweibo</string>
<string>alipayauth</string>
<string>alipay</string>
<string>safepay</string>
<string>mqq</string>
<string>mqqapi</string>
<string>mqqopensdkapiV3</string>
<string>mqqopensdkapiV2</string>
<string>mqqapiwallet</string>
<string>mqqwpa</string>
<string>mqqbrowser</string>
<string>wtloginmqq2</string>
<string>weixin</string>
<string>wechat</string>
</array>


2)在info.plist的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求

<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>


3.弹框显示弹框显示交易失败,请稍后再试
解决方案:
仔细检查私钥跟商户上传的公钥不匹配

朋友们有写的不对的欢迎指正,如果还有其他问题,请留言互相学习进步,谢谢^_^
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ios 支付宝 支付 文档