위챗 애플릿 위챗 개발 iOS WeChat 결제 개발 케이스 코드 상세 설명

iOS WeChat 결제 개발 케이스 코드 상세 설명

Mar 27, 2017 pm 01:30 PM
ios 위챗페이

이 글은 주로 iOS WeChat 결제 개발 사례를 자세히 소개하고 있으며, 관심 있는 친구들이 참고할 수 있습니다.

WeChat 결제에는 함정이 많고 공식 문서가 제공되지 않습니다. 데모도 "수줍어"하고 이해하기 어렵습니다. 신경쓴 부분이 반영되지 않은 부분도 많고, 우회하는 경우도 많았습니다. 따라서 시스템 개발 과정은 다음과 같다. (전체 데모는 블로그 끝에 첨부되어 있습니다.) 여기에는 WeChat 결제 개발 및 Alipay 개발 호출 클라이언트의 호환성 처리가 포함됩니다. (2개의 서명은 모바일 단말에 위치합니다. 블로그에는 WeChat 클라이언트를 설치하지 않은 상황에 대한 언급이 없습니다. 또한 이 메서드 [WXApi sendReq:request]를 호출할 때 반환 값이 0으로 판단하는 것도 매우 간단합니다.)

1. 환경 구성

1. 먼저 https 프로토콜 액세스, plist에 화이트리스트 설정

iOS WeChat 결제 개발 케이스 코드 상세 설명

2. 위챗 공유, 수집, 결제, 로그인 등을 하려면 "Info.plist"에 다음 코드(LSApplicationQueriesSchemes)를 추가해야 합니다.

iOS WeChat 결제 개발 케이스 코드 상세 설명

3 . 비트코드 컴파일 문제 해결

iOS WeChat 결제 개발 케이스 코드 상세 설명

4. URL 유형 설정

iOS WeChat 결제 개발 케이스 코드 상세 설명

5. WeChat 공식 데모에서)

iOS WeChat 결제 개발 케이스 코드 상세 설명

6. 시스템 종속성 라이브러리 가져오기

iOS WeChat 결제 개발 케이스 코드 상세 설명

7. 🎜>

WeChat 결제는 단위로 구분됩니다. 즉, 결제 금액이 소수점 이하 두 자리까지 유지되는 경우 결제 금액은 *100이 되어야 WeChat 결제 플랫폼으로 전송되며, 그 외의 경우에도 마찬가지입니다. .

2. 코드 개발

1. 프로그램 입구(예: applegate.m)에서 필요한 작업

iOS WeChat 결제 개발 케이스 코드 상세 설명

2. 프록시 방식, 그렇지 않으면 WeChat 고객 서비스가 콜백되지 않습니다(delegate.m 파일에도 있음)

iOS WeChat 결제 개발 케이스 코드 상세 설명

3. WeChat 결제 성공을 위한 콜백 기능

설명이 필요합니다. 공식 문서에는 다음과 같이 설명되어 있습니다. 고객 서비스 측의 성공적인 결제 결과는 서버에서 반환된 주문 상태를 기반으로 해야 합니다. , 고객 서비스 측 결제가 성공한 후 WeChat Pay 플랫폼은 결제 성공 메시지를 서버로 보내고 백그라운드에서 주문 상태를 수정한 후 클라이언트에게 반환합니다. 간단한 점은 결제가 성공하면 특정 뷰 컨트롤러(WeChat 결제 기능이 있는 뷰 컨트롤러)에 알림을 보내야 이 특정 뷰 컨트롤이 서버 주문 상태를 요청할 수 있다는 것입니다.

이 콜백 함수는 반드시 Delegate.m으로 작성해야 합니다!!!

iOS WeChat 결제 개발 케이스 코드 상세 설명

4. 특정 뷰 컨트롤러용 코드(WeChat 결제 기능이 있는 뷰 컨트롤러)
4.1 선주문 ID를 얻기 위해 선불 주문을 제출합니다. (이 프로세스는 매개변수와 서명 없이 두 번 서명해야 합니다. 매개변수 서명 전달 물론, 이러한 메소드는 payRequsestHandler 클래스에 캡슐화되어 있습니다. 메소드를 호출하려면 매개변수만 전달하면 됩니다.) 이는 결제 버튼을 클릭하기 위한 액션 메소드이기도 합니다

iOS WeChat 결제 개발 케이스 코드 상세 설명

4.2 선불 주문을 받은 후 WeChat 결제의 고객 서비스 측면을 조정할 수 있습니다(4.2 및 4.1 코드가 연속됨)

iOS WeChat 결제 개발 케이스 코드 상세 설명

사인 매개변수 서명이 있는 두 개의 독립 패키지 메소드가 payRequsestHandler에 의해 캡슐화되지 않은 문제로 인해(문제의 스크린샷은 다음과 같습니다) 먼저 코드를 스크린샷으로 찍은 후 직접 복사하여 붙여넣을 수 있는 코드 블록을 제공했습니다.
문제 스크린샷: (많은 사람들이 이 문제를 겪었다고 생각합니다. 제가 거기에 가본 적이 있는데, 100% 서명 문제입니다.)

iOS WeChat 결제 개발 케이스 코드 상세 설명

방법 1:

iOS WeChat 결제 개발 케이스 코드 상세 설명

방법 2:

iOS WeChat 결제 개발 케이스 코드 상세 설명

4.3 위의 코드로 위챗 결제 문제를 완전히 해결할 수 있습니다. 결제가 성공적으로 이루어지고 위임자의 -(void)onResp:(BaseResp*)resp 메서드를 호출하기 위해 앱으로 돌아갑니다. 따라서 여기서는 특정 뷰 컨트롤러에 알림을 보내고 그가 백그라운드 주문 상태를 요청하도록 해야 합니다. 여기서 설명하고 싶은 것은 해당 인터페이스에서 WeChat Pay를 조정한 후에도 다시 돌아올 때 여전히 같은 위치에 있다는 것입니다. 단지 콜백 메서드가 대리자에 있어야 하므로 콜백 메서드에서 성공 알림을 보내야 합니다. 그런 다음 곧 표시될 특정 뷰 컨트롤러의 뷰 메서드에서 이 알림을 수신한 다음 백그라운드 주문 상태를 요청해야 합니다. 여기서 주목해야 할 점은 알림을 제거하려면 dealloc 메서드를 다시 작성해야 한다는 것입니다.

iOS WeChat 결제 개발 케이스 코드 상세 설명

3. Alipay 및 WeChat 결제 콜백 클라이언트의 프록시 방식 호환성 처리

iOS WeChat 결제 개발 케이스 코드 상세 설명

4. 데모

코드 복사 및 붙여넣기(서명 서명)

-(NSString )createMD5SingForPay:(NSString )appid_key partnerid:(NSString)partnerid_key prepayid:(NSString )prepayid_key package:(NSString )package_key noncestr:(NSString)noncestr_key timestamp:(UInt32)timestamp_key 
{ 
NSMutableDictionary *signParams = [NSMutableDictionary dictionary]; 
[signParams setObject:appid_key forKey:@”appid”]; 
[signParams setObject:noncestr_key forKey:@”noncestr”]; 
[signParams setObject:package_key forKey:@”package”]; 
[signParams setObject:partnerid_key forKey:@”partnerid”]; 
[signParams setObject:prepayid_key forKey:@”prepayid”]; 
[signParams setObject:[NSString stringWithFormat:@”%u”,(unsigned int)timestamp_key] forKey:@”timestamp”];
NSMutableString *contentString =[NSMutableString string]; 
NSArray *keys = [signParams allKeys]; 
//按字母顺序排序 
NSArray *sortedArray = [keys sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 compare:obj2 options:NSNumericSearch]; 
}]; 
//拼接字符串 
for (NSString *categoryId in sortedArray) { 
if ( ![[signParams objectForKey:categoryId] isEqualToString:@”“] 
&& ![[signParams objectForKey:categoryId] isEqualToString:@”sign”] 
&& ![[signParams objectForKey:categoryId] isEqualToString:@”key”] 
) 
{ 
[contentString appendFormat:@”%@=%@&”, categoryId, [signParams objectForKey:categoryId]];
} 
} 
//添加商户密钥key字段 
[contentString appendFormat:@”key=%@”, @”这里填写商户密钥”]; 
NSString *result = [self md5:contentString]; 
return result;

}//创建发起支付时的sige签名

-(NSString ) md5:(NSString )str 
{ 
const char *cStr = [str UTF8String]; 
unsigned char result[16]= “0123456789abcdef”; 
CC_MD5(cStr, (CC_LONG)strlen(cStr), result); 
//这里的x是小写则产生的md5也是小写,x是大写则md5是大写,这里只能用大写,微信的大小写验证很逗 
return [NSString stringWithFormat: 
@”%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X”, 
result[0], result[1], result[2], result[3], 
result[4], result[5], result[6], result[7], 
result[8], result[9], result[10], result[11], 
result[12], result[13], result[14], result[15] 
]; 
}//MD5 加密
로그인 후 복사


위 내용은 iOS WeChat 결제 개발 케이스 코드 상세 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Apple iOS 18의 첫 번째 버전에는 심각한 발열, WeChat 지연 등 많은 버그가 있는 것으로 노출되었습니다. Apple iOS 18의 첫 번째 버전에는 심각한 발열, WeChat 지연 등 많은 버그가 있는 것으로 노출되었습니다. Jun 13, 2024 pm 09:39 PM

연례 WWDC가 종료되었으며, iOS18은 의심할 여지 없이 모든 사람의 관심의 초점입니다. 현재 많은 아이폰 사용자들이 iOS18로의 업그레이드를 서두르고 있지만, 다양한 시스템 버그들이 사람들을 불편하게 만들고 있다. 일부 블로거는 "버그가 너무 많기 때문에" iOS18로 업그레이드할 때 주의해야 한다고 말했습니다. 해당 블로거는 iPhone이 메인 기기라면 첫 번째 버전에는 버그가 많기 때문에 iOS18로 업그레이드하지 않는 것이 좋다고 말했습니다. 그는 또한 현재 발생한 몇 가지 시스템 버그를 요약했습니다: 1. 아이콘 스타일 전환이 중단되어 아이콘이 표시되지 않습니다. 2. 손전등 너비 애니메이션이 종종 손실됩니다. 3. Douyin 앱이 동영상을 업로드할 수 없습니다. 4. WeChat 메시지 푸시 지연이 발생합니다. 10초. 5. 가끔 전화가 안되고 화면이 검게 나옵니다.

Apple은 iOS/iPadOS 18 베타 4 업데이트를 다시 출시하며 버전 번호는 22A5316k로 증가했습니다. Apple은 iOS/iPadOS 18 베타 4 업데이트를 다시 출시하며 버전 번호는 22A5316k로 증가했습니다. Jul 27, 2024 am 11:06 AM

단서를 제출해주신 네티즌 Ji Yinkesi, xxx_x, 튀긴 토마토, Terrence, 매운 치킨 드럼스틱에게 감사드립니다! 7월 27일 뉴스에 따르면 Apple은 오늘 개발자를 위한 iOS/iPadOS 18 베타 4 업데이트를 다시 출시했습니다. 내부 버전 번호가 22A5316j에서 22A5316k로 업그레이드되었습니다. 현재 두 베타 4 버전 업데이트의 차이점은 불분명합니다. 등록된 개발자는 "설정" 앱을 열고 "소프트웨어 업데이트" 섹션에 들어가서 "베타 업데이트" 옵션을 클릭한 다음 iOS18/iPadOS18 개발자 베타 설정을 전환하여 베타 버전을 선택할 수 있습니다. 베타 버전을 다운로드하고 설치하려면 개발자 계정과 연결된 Apple ID가 필요합니다. 7월 24일 iO에 보고됨

Apple, iOS 18에 배포된 동형 암호화용 오픈 소스 Swift 패키지 출시 Apple, iOS 18에 배포된 동형 암호화용 오픈 소스 Swift 패키지 출시 Jul 31, 2024 pm 01:10 PM

7월 31일 뉴스에 따르면, Apple은 어제(30일) 보도 자료를 통해 Swift 프로그래밍 언어에서 동형 암호화를 가능하게 하는 새로운 오픈 소스 Swift 패키지(swift-homomorphic-encryption)의 출시를 발표했습니다. 참고: HE(동형암호)는 암호문의 동형연산 특성을 만족하는 암호화 알고리즘을 의미합니다. 즉, 데이터를 동형암호화한 후 암호문에 대해 특정 계산을 수행하고, 얻은 암호문 계산 결과를 동시에 처리합니다. 상태 암호 해독 후의 일반 텍스트는 일반 텍스트 데이터에 대해 동일한 계산을 직접 수행하여 데이터의 "보이지 않음"을 달성하는 것과 같습니다. 동형암호 기술은 암호화되지 않은 기본 데이터를 연산 프로세스에 유출하지 않고 암호화된 데이터를 계산할 수 있습니다.

업데이트 | 해커가 EU 외부의 iPad에 Epic Games Store와 Fortnite를 설치하는 방법을 설명합니다. 업데이트 | 해커가 EU 외부의 iPad에 Epic Games Store와 Fortnite를 설치하는 방법을 설명합니다. Aug 18, 2024 am 06:34 AM

업데이트: Saunders Tech는 EU 외부의 iPad에 Fortnite 및 Epic Games Store를 설치하는 방법을 설명하는 튜토리얼을 YouTube 채널(아래에 포함된 동영상)에 업로드했습니다. 그러나 프로세스에는 특정 베타 버전의 iO가 필요할 뿐만 아니라

Apple iOS/iPadOS 18 개발자 프리뷰 베타 4 출시: CarPlay 배경화면 추가, 설정 옵션 정렬, 향상된 카메라 제어 Apple iOS/iPadOS 18 개발자 프리뷰 베타 4 출시: CarPlay 배경화면 추가, 설정 옵션 정렬, 향상된 카메라 제어 Jul 24, 2024 am 09:54 AM

네티즌들 덕분에 매운 닭다리 버거, 소프트 미디어 새 친구 2092483, 필기 과거, DingHao, Xiaoxing_14, Wowotou Eat Big Kou, Feiying Q, 소프트 미디어 새 친구 2168428, Slades, Aaron212, Happy Little Hedgehog, Little Earl, Clues for the little 생선을 먹는 우유고양이! [업그레이드 튜토리얼로 바로 이동하려면 여기를 클릭하세요] 7월 24일 뉴스에 따르면 Apple은 오늘 iOS/iPadOS18 개발자 프리뷰 버전 Beta4 업데이트(내부 버전 번호: 22A5316j)를 iPhone 및 iPad 사용자에게 푸시했습니다. 마지막 릴리스. Carplay 배경화면 Apple은 밝은 모드와 어두운 모드를 포함하는 배경화면을 CarPlay에 추가했습니다. 배경화면 스타일은 iPhone과 유사합니다.

Haqu K2 프로젝터는 올림픽 열정과 꿈을 실현합니다 Haqu K2 프로젝터는 올림픽 열정과 꿈을 실현합니다 Jul 24, 2024 pm 01:34 PM

방금 끝난 유러피언컵 결승전에서 응원하는 팀을 열렬히 응원하셨나요? 다가오는 파리올림픽에서도 각 종목의 하이라이트 순간을 완벽하게 포착할 수 있기를 기대하고 계시나요? 그 중에서도 고품질의 시청 장비를 갖추는 것이 중요합니다. Haqu K2 프로젝터는 높은 가성비와 탁월한 성능으로 인해 게임을 시청할 때 좋은 선택이 될 자격이 있습니다. 높은 밝기와 선명한 화질을 제공할 뿐만 아니라 몰입도 높은 시청 경험을 제공하여 게임의 모든 흥미진진한 순간을 마치 눈앞에 있는 것처럼 느끼게 합니다. 이미 그런 장치에 매력을 느끼셨나요? 올림픽의 열정과 꿈을 집에서도 즐길 수 있을 것입니다. Haqu K2의 가장 친밀한 하이라이트는 210° 슈퍼 각도 조정으로, 천장이나 벽에서 영화를 편리하게 볼 수 있습니다.

Apple iPhone 16에는 더 이상 Apple Intelligence가 사전 설치되어 있지 않습니다. Apple iPhone 16에는 더 이상 Apple Intelligence가 사전 설치되어 있지 않습니다. Jul 30, 2024 pm 01:18 PM

업계 관계자인 Mark Gurman에 따르면 Apple의 Apple Intelligence가 10월로 연기될 것이라고 합니다. 즉, iOS18.1에서 가장 먼저 푸시됩니다. Apple iPhone 16은 9월에 출시될 예정이므로 Apple Intelligence가 사전 설치되지 않습니다. 1. Apple Intelligence Apple Intelligence는 강력한 생성 모델을 사용하여 iPhone, iPad 및 Mac에 새로운 기능을 제공하여 사용자의 의사소통, 작업 및 표현을 지원하는 개인 지능 시스템입니다. 2. 자연어 이해 Apple Intelligence에 내장된 대형 모델은 언어의 의미에 대한 깊은 이해를 가지고 있습니다.

iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. iOS 18에는 손실되거나 손상된 사진을 검색할 수 있는 새로운 '복구된' 앨범 기능이 추가되었습니다. Jul 18, 2024 am 05:48 AM

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

See all articles