您的位置:首页 > 移动开发 > 微信开发

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

2015-01-26 14:47 190 查看
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调微信支付

微信注意的就是刚开的几个参数要邮件去拿
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: