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

来源:互联网 发布:软件项目实施流程图 编辑:程序博客网 时间:2024/05/19 16:06

请根据官方文档进行配置 

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.弹框显示弹框显示交易失败,请稍后再试

解决方案:

仔细检查私钥跟商户上传的公钥不匹配


朋友们有写的不对的欢迎指正,如果还有其他问题,请留言互相学习进步,谢谢^_^


原创粉丝点击