请根据官方文档进行配置
/market/?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
find interface declarationfor'NSObject',superclassof 'Base64'
解决方案:
导入框架#import <Foundation/>
2.错误在openssl_wrapper.h文件中,没有该类型的属性
解决方案:
在openssl_wrapper.m文件添加头文件:
#import <Foundation/>
#import <UIKit/>
3.错误’openssl/‘ file not found;
解决方案:
Targets->Build Settings->Header SearchPath中添加我们刚新建的AliPaySDK文件夹的路径(拖拽此文件夹至输入框即可)
1.支付宝支付时显示:系统繁忙,请稍后再试
解决方案:
先看参数是否齐全,再看签名,如果是后台加的签需要把+ / = 之类的改成ASCII 字符(十六进制格式)
2.支付出现6002
1)在中加入安全域名白名单(右键用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)在的NSAppTransportSecurity下新增NSAllowsArbitraryLoads并设置为YES,指定所有HTTP连接都可正常请求
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>
3.弹框显示弹框显示交易失败,请稍后再试
解决方案:
仔细检查私钥跟商户上传的公钥不匹配
朋友们有写的不对的欢迎指正,如果还有其他问题,请留言互相学习进步,谢谢^_^