集成iOS支付宝支付

  • 首先在蚂蚁金服开放平台创建一个应用

    注册应用,提交审核,审核通过后会给你一个APPID。这里的账号要用公司给你的支付宝账号。

  • 下载支付宝官方demo&SDK

    下载完成之后,我们就要开始集成了。

    AlipaySDK.bundle
    AlipaySDK.framework

把这SDK里面的这两个文件导入到你的工程里面
然后添加依赖


支付宝所需依赖.png


把上图所需的依赖,全部添加进来
然后在你需要用到支付宝的页面添加头文件

import <AlipaySDK/AlipaySDK.h>

command+R 运行保证没有出错。
这一点一定要注意,一个都不能少,要不然会报错。

  • 确保没有错之后,接下来就要调起支付宝了

    上传参数整个过程是要求在后台完成的,当然在app里面也可以,不过最好放在后台,为了安全起见。
    我们是需要传这三个参数
    dic[@"orderNo"] = self.payModel.orderno;
    dic[@"body"] = self.payModel.name;
    dic[@"orderName"] = self.payModel.name;
    然后服务器给你返回来一串签名,你需要拿着这个签名然后拼接,去传给阿里。
    // NOTE: 调用支付结果开始支付
     [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
                      NSLog(@"=====%@",resultDic);
     if ([resultDic[@"resultStatus"]intValue] == 9000) {                        
                      NSLog(@"成功");
     } else {
                          NSLog(@"失败");
               }
           }];
    这个方法就是调起支付宝
    请求参数说明
    app_id=2015052600090779&biz_content={"timeout_express":"30m","seller_id":"","product_code":"QUICK_MSECURITY_PAY","total_amount":"0.01","subject":"1","body":"我是测试数据","out_trade_no":"IQJZSRC1YMQB5HU"}&charset=utf-8&format=json&method=alipay.trade.app.pay&notify_url=http://domain.merchant.com/payment_notify&sign_type=RSA&timestamp=2016-08-25 20:26:31&version=1.0&sign=cYmuUnKi5QdBsoZEAbMXVMmRWjsuUj+y48A2DvWAVVBuYkiBj13CFDHu2vZQvmOfkjE0YqCUQE04kqm9Xg3tIX8tPeIGIFtsIyp/M45w1ZsDOiduBbduGfRo1XRsvAyVAv2hCrBLLrDI5Vi7uZZ77Lo5J0PpUUWwyQGt0M4cj8g=
    这个是支付宝的标准签名,如果签名不规范,就会出错。也能调起支付宝,但是会有错误码。
    报错ALI38173/AE050001205

    这个一般就是签名格式错误,你可以先用官方的签名放上去试试,看看报不报错,把你的订单号填写上去。

报错ALI59/ALI29/ALI14/ALI38173

1.partner填写要正确,可以登录签约账号到支付宝后台商家服务中进行查询对比;
2.移动支付请求的参数不对,打印请求参数payInfo,和文档对比,请求参数是否正确,检查文档中必须传的参数有没有都请求给支付宝,有没有参数漏掉的;参数有没有少了、多了、乱码、名称不对,还有不要加自定义参数;
3.ALI29有可能是宝令被锁了。

  • 然后在appdelegate里面添加

#pragma mark ios 9.0以上会调用此url回调

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options

{

    // 微信

    if ([url.scheme isEqualToString:PAY_WEIXIN_ID]) {

        [WXApi handleOpenURL:url delegate:(id<WXApiDelegate>)self];

    }

    

    // 支付宝

    if ([url.scheme isEqualToString:@"SearchPigeonWorld"]) {

        //跳转支付宝钱包进行支付,处理支付结果

        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

            if ([self.appMyDelegate respondsToSelector:@selector(payCenterWeixinOnResultWith:)]) {

                [self.appMyDelegate payCenterWeixinOnResultWith:[resultDic[@"resultStatus"]intValue] == 9000 ? YES : NO];

            }

        }];

    }

    return YES;

}

//支付成功时调用,回到第三方应用中

#pragma mark ios 9.0以前会调用此url回调

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

{

    // 微信

    if ([url.scheme isEqualToString:PAY_WEIXIN_ID])

    {

        [WXApi handleOpenURL:url delegate:(id<WXApiDelegate>)self];

    }

    

    // 支付宝

    if ([url.host isEqualToString:PAY_ALIPAY_appID]) {

        //跳转支付宝钱包进行支付,处理支付结果

        [[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {

            if ([self.appMyDelegate respondsToSelector:@selector(payCenterWeixinOnResultWith:)]) {

                [self.appMyDelegate payCenterWeixinOnResultWith:[resultDic[@"resultStatus"]intValue] == 9000 ? YES : NO];

            }

        }];

    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Macle_Chen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值