IOS关于支付宝的集成与支付

来源:互联网 发布:json传值到controller 编辑:程序博客网 时间:2024/04/29 06:52
以下是阿里云支付集成步骤,如有错误请多指正


1、建立.pch文件 (这个是解决支付宝SDK中很多文件找不到Foundation.h文件问题,同时解决AliSDK.h中AlertViewDelegate协议文件找      不到问题)

    导入#import<Foundation/Foundation.h>     解决rsa1.h文件找不到问题
    导入#import<UIKit/UIKit.h>     解决AlertViewDelegate Cannot find问题



2、配置.pch文件  build setting -> prefix header ->工程名/文件名.pch
$(EXECUTABLE_NAME)/PrefixHeader.pch 


3、导入开发需要的八个文件
     AlipaySDK.bundle
     AlipaySDK.framework 
     libcrypto.a
     libssl.a 
     openssl文件夹、
     Order.h 
     Order.m 
     Util文件夹

4、导入framework
   SystemConfiguration.framework
   QuartzCode.framework
   CoreText.framework
   CoreTelephony.framework
   Foundation.framework
   CreGraphics.framework
   UIKit.framework
   libz.dylib   




5、如果出现错误  (’openssl/ash1.h’ file not found)
     解决办法:build setting-> Header Search paths ->
     添加$(SRCROOT)/$(EXECUTABLE_NAME)/(如果你是放在根目录下面的就不要继续添加了否则继续添加你自己的创建的文件夹名字作为路径)
     如果我们创建了一个文件夹AliPaySDK里面包含了刚才导入的八个文件那么我们的路径为: $(SRCROOT)/$(EXECUTABLE_NAME)/AliPaySDK 


6、以下是支付步骤

6.1、target->info->URL Scheme 添加一个scheme:例如 在URL Schmes里面写 testalipay

6.2、创建订单信息及签名 

   Order *order = [[Orderalloc]init];
   order.partner =PartnerID;//合作身份ID
   order.seller =SellerID;//支付宝账号
   order.tradeNO = 31312312321;//订单ID(由商家自行制定)
   order.productName = @"金币";//订单标题(由商家自行制定) 
   order.productDescription = @"这是一单充值";//订单描述 (由商家自行制定)
   order.amount = 1 ;//商品价格 1分钱为单位
   order.notifyURL =  callback;//支付成功后要回调的地址
   order.service =@"mobile.securitypay.pay";
   order.paymentType =@"1";
   order.inputCharset =@"utf-8";
   order.itBPay =@"30m";

//应用注册scheme,
NSString *appScheme =@"testalipay";//我们刚才给的URL schemes
//将商品信息拼接成字符串
      NSString *orderSpec = [orderdescription];
      //获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,
     只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode
      id<DataSigner> signer =CreateRSADataSigner(PartnerPrivKey);
      NSString *signedString = [signersignString:orderSpec];

6.3、发起支付   

    NSString *orderString =nil;
   if (signedString !=nil) {
        orderString = [NSStringstringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",orderSpec, signedString,@"RSA"];
     [[AlipaySDKdefaultService]payOrder:orderStringfromScheme:appSchemecallback:^(NSDictionary *resultDic) {
       //如果没有安装支付宝客户端会回调到这里
           NSString *string=[resultDic objectForKey:@"resultStatus"];
            if ([stringisEqualToString:@"9000"]) {//表示支付成功
                }
       }];
    }


6.4、AppDelegate方法  如果有安装支付宝客户端 会回到这里

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{

    __block NSDictionary *dic;
   //如果极简SDK不可用,会跳转支付宝钱包进行支付,需要将支付宝钱包的支付结果回传给SDK
   if ([url.hostisEqualToString:@"safepay"]) {
        [[AlipaySDKdefaultService]processOrderWithPaymentResult:urlstandbyCallback:^(NSDictionary *resultDic) {
            dic = resultDic;
        }];
    }
   if ([url.hostisEqualToString:@"platformapi"]){//支付宝钱包快登授权返回authCode
        [[AlipaySDKdefaultService]processAuthResult:urlstandbyCallback:^(NSDictionary *resultDic) {
            dic = resultDic;
        }];
    }
   //支付成功调用统计
   if ([[dicobjectForKey:@"resultStatus"]intValue] ==9000) {
   
    }
}







自己的一点点支付经验  欢迎板砖

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 游戏无响应了怎么办 手机百度无响应怎么办 新手机响应慢怎么办 vivo手机无响应怎么办 vivo软件无响应怎么办 退货商家不处理怎么办 淘宝页面变小了怎么办 淘宝卖家让微信交易被骗怎么办 苹果下载特别慢怎么办 淘宝没有支付宝怎么办 淘宝买东西限购怎么办 淘宝被别人登录怎么办 淘宝被厂家投诉怎么办 买家退货说是假货怎么办 同行给差评怎么办 被买家举报了怎么办 淘宝商品被屏蔽怎么办 电脑处于离线状态怎么办 计算机处于离线状态怎么办 交易猫安全提醒怎么办 网吧进游戏代码怎么办 车票冲突买不了怎么办 苹果8淘宝打不开怎么办 我的淘宝打不开怎么办 福袋不支持退货怎么办 不支持跨区下单怎么办 支付宝被占用怎么办 淘宝东西失效了怎么办 访客突然下降了怎么办 淘宝店铺广告违规怎么办 苹果手机网速差怎么办 支付宝账号忘记怎么办 支付宝无法登录怎么办 什么是淘宝空间不足怎么办 支付宝授权失败怎么办 买家旺旺被打标一次怎么办 淘宝网上忘记密码怎么办 登淘宝忘记密码怎么办 手机淘宝闪退怎么办 证券账户忘了怎么办 资金账户忘了怎么办