关于ios支付(阿里,微信)

本文介绍了如何在iOS应用中集成阿里支付和微信支付。针对阿里支付,文章详细讲解了客户端回调方法的实现过程;而对于微信支付,则侧重于介绍如何获取必要的参数并生成支付签名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,阿里支付

阿里支付的文档写的很清楚,对于一些参数应该没有问题

关注的应该是有无客户端走的回调方法

装了客户端回调

AppDelegate

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

{

    if ([url.host isEqualToString:@"safepay"]) {

        [[AlipaySDK defaultService]

         processOrderWithPaymentResult:url

         standbyCallback:^(NSDictionary *resultDic) {

             NSString * query = [[url query] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

             AlixPayResult *result = [[AlixPayResult alloc] initWithString:query];

             if (result.statusCode == 9000) {

                 id<DataVerifier> verifier = CreateRSADataVerifier([RPDataShare sharedService].publicKey);

                 if ([verifier verifyString:result.resultString withSign:result.signString]){

                 //交易成功

                 }else {

                 //交易失败

                 }

             }else if (result.statusCode == 4000){

                 //订单已支付

             }else if (result.statusCode == 6001){

                 //取消支付

             }

         }];

    }else if ([url.host isEqualToString:@"pay"]) {

        return  [WXApi handleOpenURL:url delegate:self];

    }

}


web端支付

+(void)initAlixPayOrder:(AliPayModel *)aliPayObj

{

    [RPDataShare sharedService].publicKey = aliPayObj.publicKey;

    [RPDataShare sharedService].privateKey = aliPayObj.privateKey;

    aliPayObj.notifyURL = @"";

    aliPayObj.service = @"";

    aliPayObj.paymentType = @"";

    aliPayObj.inputCharset = @"";

    aliPayObj.itBPay = @"";

    aliPayObj.showUrl = @"";

    NSString *appScheme = @"";

    NSString *orderSpec = [aliPayObj description];


    id<DataSigner> signer = CreateRSADataSigner(aliPayObj.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) {

            DLog(@"reslut = %@",resultDic);

            if ([[resultDic objectForKey:@"resultStatus"]integerValue]==6001) {

                //取消付款

            }else if ([[resultDic objectForKey:@"resultStatus"]integerValue]==9000){

                    //交易成功

                }

            }else if ([[resultDic objectForKey:@"resultStatus"]integerValue] == 4000){

                //订单已支付

            }

        }];

    }

}




2,微信支付

申请开通微信支付后财付通会把一些参数以邮件形式发给你:商户号(PartnerID)初始密钥(PartnerKey),同时会提醒你去财付通企业版修改32位的密钥,修改后对应的PartnerKey也要修改,微信的支付密钥要自己发邮件去申请,反正我们是这么弄来的

接下来就是生成package和签名,生成package注意access token的时长和次数限制

签名微信分app签名和后台签名,拿到签名生成调微信接口生成预支付订单id

预支付订单id调微信支付

微信注意的就是刚开的几个参数要邮件去拿

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值