《IOS 9 支付宝 and 微信 支付的集成》

          《IOS 9  支付宝  and 微信支付的集成》

          支付做好了,只要7行代码,就可进行支付。不需要设置其他东西:举个例子:微信加什么.mm 和设置 other lInk 什么的。只要配置一个文件就可以。避免了,进行支付参数这个错,那个错的。造成支付调不起支付等原因。还有支付宝,打破它的限制,想把它移动到那个文件夹,九移动到哪(不会出现错误 ,不是什么绝对路径哦(嘿嘿,这是改里面的文件了))、。


第一步:我们来看效果。




第二部:我们配置文件。

    1、导入必要的框架。




    2、添加 URLtype (用于回调)。



    3、添加,白名单。



     4、进行网络的配置。(看图片上的说明)  







第三步:进行关键包的导入。



绿色的是,重要的配置文件(一级保护动物)。

第四步:关键代码的缩影。


     1、支付宝。

            1》调用代码。

                 

        ZSJ_All_PaySDK * pa = [ZSJ_All_PaySDK ZSJ_PaySdk];

        if ([pa ZSJExamine]) {

            pa.P_amount = @"0.01";

            pa.P_productDescription = @"erdan ";

            pa.P_productName = @"sd";

            pa.P_tradeNO = @"KPD20160108104062";

            [pa ZSJ_Pay:^(id resultObject) {

                NSLog(@"%@",resultObject);

            }];

        }

       2》隐式代码。

       

-(void)ZSJ_Pay:(result)resultObject{

    Order *order = [[Order alloc] init];

    order.partner = Alipay_publickey;

    order.seller = Alipay_seller;

    order.tradeNO = self.P_tradeNO; //订单ID(由商家自行制定)

    order.productName = self.P_productName; //商品标题

    order.productDescription = self.P_productDescription; //商品描述

    order.amount = self.P_amount; //商品价格

    order.notifyURL Alipay_notifyURL; //回调URL

    order.service = @"mobile.securitypay.pay";

    order.paymentType = @"1";

    order.inputCharset = @"utf-8";

    order.itBPay = @"30m";

    order.showUrl = @"m.alipay.com";

    //应用注册scheme,AlixPayDemo-Info.plist定义URL types

    NSString *appScheme = Alipay_scheme;

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

    NSString *orderSpec = [order description];

    NSLog(@"orderSpec = %@",orderSpec);

    //获取私钥并将商户信息签名,外部商户可以根据情况存放私钥和签名,只需要遵循RSA签名规范,并将签名字符串base64编码和UrlEncode

    id<DataSigner> signer = CreateRSADataSigner(Alipay_privatekey);

    NSString *signedString = [signer signString:orderSpec];

    //将签名成功字符串格式化为订单字符串,请严格按照该格式

    NSString *orderString = nil;

    if (signedString != nil) {

        orderString = [NSString stringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",

                       orderSpec, signedString, @"RSA"];

        [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {

            // 支付结果的回调

            resultObject(resultDic);

         }];

    }

}

    

     2、微信。

     1》调用代码。 

        

        ZSJ_All_PaySDK * pa = [ZSJ_All_PaySDK ZSJ_WXPaySdk];

        if ([pa ZSJExamine_WeChat]) {

            pa.WeChat_amount = @"1";

            pa.WeChat_productDescription = @"你欠我钱";

            pa.WeChat_productName = @"";

            pa.WeChat_tradeNO = @"KPD20160108104025";

            [pa WeChat_SendPay];

        }



       2》 隐式代码。

//提交预支付

-(NSString *)sendPrepay:(NSMutableDictionary *)prePayParams

{

    NSString *prepayid = nil;

    //获取提交支付

    NSString *send      = [self genPackage:prePayParams];

    //输出Debug Info

    [debugInfo appendFormat:@"发送的xml:%@\n", send];

    //发送请求post xml数据

    NSData *res = [WXEncrypt httpSend:@"https://api.mch.weixin.qq.com/pay/unifiedorder" method:@"POST" data:send];

    //输出Debug Info

    [debugInfo appendFormat:@"服务器返回:\n%@\n\n",[[NSString alloc] initWithData:res encoding:NSUTF8StringEncoding]];

    

    WApiXML *xml  = [[WApiXML alloc]init];

    //开始解析

    [xml StartAnalysisData:res];

    // 获取数据

    NSMutableDictionary *resParams = [xml GetAnalysisData];

    NSLog(@"关键时刻:%@",resParams);

    

    //判断返回

    NSString *return_code   = [resParams objectForKey:@"return_code"];

    NSString *result_code   = [resParams objectForKey:@"result_code"];

    if ( [return_code isEqualToString:@"SUCCESS"] )

    {

        //生成返回数据的签名

        NSString *sign      = [self createMd5Sign:resParams ];

        NSString *send_sign =[resParams objectForKey:@"sign"] ;

        //验证签名正确性

        if( [sign isEqualToString:send_sign]){

            if( [result_code isEqualToString:@"SUCCESS"]) {

                //验证业务处理状态

                prepayid    = [resParams objectForKey:@"prepay_id"];

                return_code = 0;

                [debugInfo appendFormat:@"获取预支付交易标示成功!\n"];

            }

        }else{

            last_errcode = 1;

            [debugInfo appendFormat:@"gen_sign=%@\n   _sign=%@\n",sign,send_sign];

            [debugInfo appendFormat:@"服务器返回签名验证错误!!!\n"];

        }

    }else{

        last_errcode = 2;

        [debugInfo appendFormat:@"接口返回错误!!!\n"];

    }

    return prepayid;

}



第五部:完整代码下载。
     
   https://github.com/zhoushuangjian/ZSJ_PaySDK.git
       





































  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值