iOS 알 리 페 이,위 챗,은 련 결제 통합 패키지 호출(상)
알 리 페 이 통합 공식 튜 토리 얼https://docs.open.alipay.com/204/105295/
알 리 페 이 통합 공식 demohttps://docs.open.alipay.com/54/104509/
1.SDK 가 져 오기 및 의존 라 이브 러 리 추가
IDE(예 를 들 어 Xcode)를 시작 하여 iOS 패키지 의 압축 파일 중 아래 파일 을 프로젝트 폴 더 에 복사 하고 프로젝트 프로젝트 프로젝트 에 가 져 옵 니 다.
2.Appdelegate 에 코드 추가
도입 헤더 파일
#import <AlipaySDK/AlipaySDK.h>
지불 리 셋 방법 추가
- (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) {
NSLog(@"result = %@",resultDic);
}];
// ,
[[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
// auth code
NSString *result = resultDic[@"result"];
NSString *authCode = nil;
if (result.length>0) {
NSArray *resultArr = [result componentsSeparatedByString:@"&"];
for (NSString *subResult in resultArr) {
if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {
authCode = [subResult substringFromIndex:10];
break;
}
}
}
NSLog(@" authCode = %@", authCode?:@"");
}];
}
//
if ([url.scheme isEqualToString:@"wxf6e443649d826e8e"])
{
return [WXApi handleOpenURL:url delegate:(id<WXApiDelegate>)self];
}
return YES;
}
// NOTE: 9.0 API
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if ([url.host isEqualToString:@"safepay"]) {
// ,
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
// ,
[[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
// auth code
NSString *result = resultDic[@"result"];
NSString *authCode = nil;
if (result.length>0) {
NSArray *resultArr = [result componentsSeparatedByString:@"&"];
for (NSString *subResult in resultArr) {
if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {
authCode = [subResult substringFromIndex:10];
break;
}
}
}
NSLog(@" authCode = %@", authCode?:@"");
}];
}
//
if ([url.scheme isEqualToString:@"wxf6e443649d826e8e"])
{
return [WXApi handleOpenURL:url delegate:(id<WXApiDelegate>)self];
}
return YES;
}
3.URL 구성 추가Targets->Info 에서 마지막 으로 URL Scheme 을 찾 습 니 다.
'Info'옵션 을 클릭 하고'URL Types'옵션 에서'+'를 클릭 합 니 다.
4.결제 하 는 곳 에 알 리 페 이 를 들 어 올 리 는 방법 추가
도입 헤더 파일
#import <AlipaySDK/AlipaySDK.h>
지불 장소 에서 알 리 페 이 코드 를 추가 합 니 다.
[[AlipaySDK defaultService] payOrder:@" " fromScheme:@" URL Scheme" callback:^(NSDictionary *resultDic) {
NSLog(@"=====%@",resultDic);
if ([resultDic[@"resultStatus"]intValue] == 9000) {
NSLog(@" ");
} else {
NSLog(@" ");
}
}];
통합 위 챗 결제위 챗 결제 통합 공식 문서https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
위 챗 통합 공식 demohttps://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1
1:SDK 가 져 오기 및 의존 라 이브 러 리 추가
이 두 가지 설정 을 추가 하 세 요.
2:APPDLEgate 에 코드 추가
도입 헤더 파일
#import <WXApi.h>
@interface AppDelegate ()<WXApiDelegate>
등록-(BOOL)application:(UIapplication*)application didFinishLaunching WithOptions:(NSDictionary*)launchOptions{[WXApi registerApp:@"신청 한 appid 작성"];returnYES; }
결제 리 셋 방법 을 추가 합 니 다.위 에 알 리 페 이 통합 코드 에 있 는 똑 같은 코드 입 니 다.
- (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) {
NSLog(@"result = %@",resultDic);
}];
// ,
[[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
// auth code
NSString *result = resultDic[@"result"];
NSString *authCode = nil;
if (result.length>0) {
NSArray *resultArr = [result componentsSeparatedByString:@"&"];
for (NSString *subResult in resultArr) {
if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {
authCode = [subResult substringFromIndex:10];
break;
}
}
}
NSLog(@" authCode = %@", authCode?:@"");
}];
}
//
if ([url.scheme isEqualToString:@"wxf6e443649d826e8e"])
{
return [WXApi handleOpenURL:url delegate:(id<WXApiDelegate>)self];
}
return YES;
}
// NOTE: 9.0 API
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options
{
if ([url.host isEqualToString:@"safepay"]) {
// ,
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
// ,
[[AlipaySDK defaultService] processAuth_V2Result:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
// auth code
NSString *result = resultDic[@"result"];
NSString *authCode = nil;
if (result.length>0) {
NSArray *resultArr = [result componentsSeparatedByString:@"&"];
for (NSString *subResult in resultArr) {
if (subResult.length > 10 && [subResult hasPrefix:@"auth_code="]) {
authCode = [subResult substringFromIndex:10];
break;
}
}
}
NSLog(@" authCode = %@", authCode?:@"");
}];
}
//
if ([url.scheme isEqualToString:@"wxf6e443649d826e8e"])
{
return [WXApi handleOpenURL:url delegate:(id<WXApiDelegate>)self];
}
return YES;
}
위 챗 결제 리 셋 에이전트 추가
// ,
- (void)onResp:(BaseResp *)resp
{
//
if([resp isKindOfClass:[PayResp class]]){
switch (resp.errCode) {
case WXSuccess:{
// ,
NSNotification *notification = [NSNotification notificationWithName:@"ORDER_PAY_NOTIFICATION" object:@"success"];
[[NSNotificationCenter defaultCenter] postNotification:notification];
break;
}
default:{
NSNotification *notification = [NSNotification notificationWithName:@"ORDER_PAY_NOTIFICATION"object:@"fail"];
[[NSNotificationCenter defaultCenter] postNotification:notification];
break;
}
}
}
}
3.URL 구성 추가Targets->Info 에서 마지막 으로 URL Scheme 을 찾 습 니 다.
'Info'옵션 을 클릭 하고'URL Types'옵션 에서'+'를 클릭 합 니 다
APPId
위 와 같다4.결제 처 에 위 챗 방법 추가
도입 헤더 파일
#import <WXApi.h>
지불 장소 에 위 챗 코드 추가
if ([WXApi isWXAppInstalled]) {
NSLog(@" ...");
// ,
}else{
}
#pragma mark
- (void)WXPayWithAppid:(NSString *)appid partnerid:(NSString *)partnerid prepayid:(NSString *)prepayid package:(NSString *)package noncestr:(NSString *)noncestr timestamp:(NSString *)timestamp sign:(NSString *)sign{
//
PayReq *req = [[PayReq alloc] init];
// AppID ,
req.openID = appid;
// id,
req.partnerId = partnerid;
// , ,
req.prepayId = prepayid;
//
req.package = package;
// , ,
req.nonceStr = noncestr;
// , ,
NSString * stamp = timestamp;
req.timeStamp = stamp.intValue;
//
req.sign = sign;
if ([WXApi sendReq:req]) { // , onResp
NSLog(@" ...");
}else{
NSLog(@" ...");
}
}
3.은 련 지불 집성은 련 핸드폰 컨트롤 결제https://link.jianshu.com/?t=https://open.unionpay.com/ajweb/index
은 련 홈 페이지
필요 한 라 이브 러 리 파일 을 자신의 프로젝트 에 끌 어 다 놓 습 니 다.SDK 파일 이 있 는 디 렉 터 리 upmp아이 폰/payment control,UPPayment Control.h,libPayment Control.a 두 파일(오래된 버 전 은 세 개,이 점 은 다르다)을 포함 합 니 다.
방법 에 필요 한 몇 가지 매개 변수 문서 에 모두 쓰 여 있 습 니 다.tn 은 거래 흐름 번호 입 니 다.서버 에서 전 달 된 것 입 니 다.우리 클 라 이언 트 는 이 매개 변수 로 만 결제 컨트롤 을 호출 하여 지불 할 수 있 습 니 다.
여기까지:제3자 결제 통합 은 대체적으로 통합 되 었 습 니 다.다음 글 은 세 가지 통합 호출 패 키 징 코드 를 기대 하 십시오.
다음은 우리 가 공유 하 는 iOS 알 리 페 이,위 챗,은 련 결제 통합 패키지 호출(하)입 니 다.
https://www.aliyun.com/jiaocheng/349377.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IOS에서 ReplayKit 및 RTC 사용 방법응용된 소리와 아나운서의 소리를 포함한다.이 두 가지 수요를 감안하여 우리는 스크린 공유를 하는 생방송에 필요한 미디어 흐름을 간단하게 분석할 수 있다. 만약 우리가 Audio App과 Audio Mic를 두 개의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.