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

来源:互联网 发布:lol有mac国服版本吗 编辑:程序博客网 时间:2024/06/05 20:12

1,阿里支付

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

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

装了客户端回调

AppDelegate

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

{

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

        [[AlipaySDKdefaultService]

         processOrderWithPaymentResult:url

        standbyCallback:^(NSDictionary *resultDic) {

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

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

            if (result.statusCode ==9000) {

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

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

                 //交易成功

                 }else {

                 //交易失败

                 }

             }elseif (result.statusCode ==4000){

                 //订单已支付

             }elseif (result.statusCode ==6001){

                 //取消支付

             }

         }];

    }elseif ([url.hostisEqualToString:@"pay"]) {

        return  [WXApihandleOpenURL: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 = [NSStringstringWithFormat:@"%@&sign=\"%@\"&sign_type=\"%@\"",

                       orderSpec, signedString,@"RSA"];

        [[AlipaySDKdefaultService] payOrder:orderStringfromScheme:appScheme callback:^(NSDictionary *resultDic) {

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

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

                //取消付款

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

                    //交易成功

                }

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

                //订单已支付

            }

        }];

    }

}




2,微信支付

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

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

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

预支付订单id调微信支付

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

0 0
原创粉丝点击