iOS支付宝、微信支付


微信支付:
1.获取的数据有:(红色的一定要知道,因为生成签名会用到)

参数注释
例如
appid
应用IDwx3ff3d1fc2ff83937
mch_id
商户号1448474102
APP_KEY
954d05bee14a4443da66df49c20fac15
WX_APPSecret
1b887f214421222e1b6a79e4bc37200f


2.官方网站下载sdk文件,

将以下文件拖入到自己的项目中

3.添加依赖库
其中官方文档中并没有提及要添加libc++.tbd这个库文件,但是不添加就会报错,是一个坑。

4.添加”-Objc-all_load”(非常重要!!!)
添加-Objc -all_load 可以,只添加-all_load也可以,但是不能只添加-Objc,会崩溃。

5.在AppDelegate.m文件里面导入头文件
  #import   "WXApi.h"

- ( BOOL )application:( UIApplication  *)application didFinishLaunchingWithOptions:( NSDictionary  *)launchOptions {
          //注册微信支付(用到appid)
    [ WXApi   registerApp : @"wx3ff3d1fc2ff83937" ];
    return  YES ;
}

//9.0前的方法,为了适配低版本   保留
- ( BOOL )application:( UIApplication  *)application handleOpenURL:( NSURL  *)url{
    return [ WXApi   handleOpenURL :url  delegate :self];
}

- ( BOOL )application:( UIApplication  *)application openURL:( NSURL  *)url sourceApplication:( NSString  *)sourceApplication annotation:( id )annotation{
    return [ WXApi   handleOpenURL :url  delegate :self];
}

//9.0后的方法
- ( BOOL )application:( UIApplication  *)app openURL:( NSURL  *)url options:( NSDictionary < NSString  *, id > *)options{
     //这里判断是否发起的请求为微信支付,如果是的话,用WXApi的方法调起微信客户端的支付页面(://pay   之前的那串字符串就是你的APPID,)
    return  [ WXApi   handleOpenURL :url  delegate :self];
}


//微信SDK自带的方法,处理从微信客户端完成操作后返回程序之后的回调方法,显示支付结果的
-( void ) onResp:( BaseResp *)resp
{
     //启动微信支付的response
     NSString  *payResoult = [ NSString   stringWithFormat : @"errcode:%d" , resp. errCode ];
    if([resp  isKindOfClass :[ PayResp   class ]]){
         //支付返回结果,实际支付结果需要去微信服务器端查询
         switch  (resp. errCode ) {
                case  0 :
                payResoult =  @"支付结果:成功!" ;
                break;
                case - 1 :
                payResoult =  @"支付结果:失败!" ;
                break;
                case - 2 :
                payResoult =  @"用户已经退出支付!" ;
                break;
             default :
                payResoult = [ NSString   stringWithFormat : @"支付结果:失败!retcode = %d, retstr = %@" , resp. errCode ,resp. errStr ];
                break;
        }
    }
}

6.调用
创建一个支付按钮,处理他的点击事件
- ( IBAction )pay:( id )sender {
    //判断用户是否安装微信软件
    if ([ WXApi   isWXAppInstalled ]) {
        [self  payWithWeixin ];
    }else{
         UIAlertController  *alertController = [ UIAlertController   alertControllerWithTitle : @"未监测到微信,是否要进行安装?"   message : @"请先安装微信App,然后使用微信支付。"   preferredStyle : UIAlertControllerStyleAlert ];
         UIAlertAction  *cancelAction = [ UIAlertAction   actionWithTitle : @"取消"   style : UIAlertActionStyleCancel   handler :^( UIAlertAction  *  _Nonnull  action) {
        }];
         UIAlertAction  *okAction = [ UIAlertAction   actionWithTitle : @"好的"   style : UIAlertActionStyleDefault   handler :^( UIAlertAction  *  _Nonnull  action) {
            [[ UIApplication   sharedApplication openURL :[ NSURL   URLWithString : @"itms-apps://itunes. apple.com/cn/app/wei/id414478124 " ]];
        }];
        [alertController  addAction :cancelAction];
        [alertController  addAction :okAction];
        [self  presentViewController :alertController  animated : YES   completion :nil];
    }
}

-( void )payWithWeixin{
     //返回参数调起支付
     PayReq * req             = [[ PayReq   alloc init ];
    req. openID               =  @"wx3ff3d1fc2ff83937” ;//直接传appid就可以
    req. partnerId           =  @"1448474102” ;//就是商户ID
    req. prepayId             =  @"wx2017031509133292984b9ce30164758239” ;//要么自己前台获取,要么跟后台要
    req. nonceStr             =  @"oK0yI6GCRT0v3FSL” ;//随即串(测试数据可以随便传)
    req. timeStamp           = [ @"98766"   intValue ];//时间戳(测试数据可以随便传)
    req. package             =  @"Sign=WXpay” ;//官方固定的参数
    req. sign                 =  @"   AE7F415D7D39E0EEA98F3704A3FB10C5 ;//自动生成签名即可(测试数据可以随便传)
   
     //调起支付(**参数有一个错误,将不能完成调起**)
    [ WXApi   sendReq :req];
}


支付宝支付集成

1.获取必要参数
参数名称例如
appID

商户id
2017031006155166rsa2
PrivateKey
私钥 MIIE*******iVnY=

2。官方现在sdk,将以下文件夹拖入到自己的项目中

3.添加依赖库,一个都不能少

4.填写pch路径


5.导入


6.代码运行就可以了







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值