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

1 篇文章 0 订阅
1 篇文章 0 订阅

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调微信支付

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值