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调微信支付
微信注意的就是刚开的几个参数要邮件去拿