서문: 다음은 WeChat 결제 개발 과정을 사진과 텍스트로 자세히 소개합니다. 제 에세이 과정을 따라가면 코드를 살펴볼 수 있습니다. WeChat을 통해 결제하는 방법도 배웠습니다. 그리고 면접에서도 결제 관련 자주 묻는 질문이 있습니다.
텍스트:
1. 먼저 WeChat 결제를 사용하기 전에 개발자가 알아야 할 사항이 있습니다. 아래 링크를 엽니다. :
pay.weixin.qq.com/wiki/doc/api/app.php?chapter=3_1
위챗 결제 가맹점 개발 페이지는 다음과 같습니다. 플랫폼 문서를 참조하면 WeChat SDK 결제 기능을 개발하고 사용할 때 문제가 발생하면 여기에서 관련 정보를 찾을 수도 있습니다.
그런 다음 독자들에게 이 개발 문서에서 "결제 계정>결제 계정"을 클릭한 다음 현재 페이지를 맨 아래로 스크롤하여 APPID를 확인하라고 안내합니다:
참고: 이 APPID는 개발 중 WeChat 결제를 사용하는 데 필요하며, 이 APPID는 판매자가 WeChat 결제 플랫폼에 등록하고, 300위안을 지출하고, 많은 관련 중요 정보를 입력하고, APPID를 취득하기 위해서는 사업자등록증 업로드 및 기타 필요한 절차가 필요합니다.
상용 앱 애플리케이션의 경우, 고객이 WeChat 앱을 사용하여 구매를 하면 프로그램이 이 고유한 APPID를 기반으로 가맹점을 찾아 소비자의 금액을 가맹점의 계좌로 이체합니다.
개발자를 위한 이점: WeChat 결제 플랫폼은 개발자를 위해 테스트용 데모를 제공하고 데모 소스 코드에서도 유용한 기능을 제공합니다. 테스트 코드의. 이러한 방식으로 개발자는 APPID를 구매하기 위해 300위안을 지출할 필요가 없습니다.
2. 독자들이 본 위챗 SDK의 사용과정을 좀 더 편리하고 구체적으로 학습할 수 있도록 일반 프로젝트를 생성하고, 그 위에 직접 위챗 SDK를 사용해 위챗 결제를 완료하겠습니다.
pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1
SDK를 클릭하여 다운로드하고 데모도 다운로드할 수 있습니다. 소스 코드를 참조로 사용하는 방법을 배우거나 나중에 추가 탐색을 위해 저장할 수 있습니다.
새 프로젝트에서는 다운로드한 SDK를 드래그합니다. 다운로드한 SDK 파일에 5개의 파일이 있습니다. 원하는 대로 프로젝트에 read_me.txt를 보관할 필요는 없지만 내부의 프롬프트 정보를 열고 읽을 수 있습니다.
먼저 read_me.txt 파일을 열어보겠습니다. 실제로 최근 여러 버전의 업데이트에서 해결된 문제와 SDK 사용 시 주의사항에 대해 설명하고 있습니다. 따라서 이 read_me 파일은 매우 중요합니다.
3. 자, read_me.txt에 따라 필요한 과정을 진행하겠습니다.
Xcode 7 버전 이후에는 프레임워크와 링크 라이브러리를 가져와야 합니다. :
XCode 7 이전이라면 Foundation.framework, UIKit.framework 및 기타 프레임워크를 수동으로 가져와야 할 수도 있습니다.
그런 다음 read_me.txt의 프롬프트에 따라 plist 코드를 info.plist 파일에 복사합니다.
1 <key>LSApplicationQueriesSchemes</key>2 <array>3 <string>weixin</string>4 </array>5 <key>NSAppTransportSecurity</key>6 <dict>7 <key>NSAllowsArbitraryLoads</key>8 <true/>9 </dict>
그런 다음 info.plist를 추가합니다. 파일을 속성 목록 표시 보기로 전환하면 두 가지 항목이 더 표시됩니다.
iOS9에서는 제한이 있으므로 XCode7 이후 개발 중에 앱 전송 보안 설정을 수동으로 추가해야 합니다. 기본적으로 http 프로토콜에 액세스합니다.
LSApplicationQueriesSchemes는 현재 애플리케이션이 WeChat의 관련 기능(공유, 수집, 결제, 로그인 등)을 사용할 수 있도록 사용할 URL 체계를 화이트리스트에 추가할 수 있습니다.
WeChat 결제에 사용되는 APPID를 URL Schemes [English skiːm]으로 설정하는 마지막 작업이 있습니다.
4. 이제 코드 입력을 시작할 수 있습니다.
WeChat 결제 플랫폼에서 다운로드한 데모 프로그램을 열고 소스 코드를 찾을 수 있습니다. AppDelegate 테스트용 APPID 찾기:
然后回到自己建立的工程中,写下了微信支付的流程:
既然要注册微信,那么我们先到微信SDK的头文件中查看一下,发现只提供了两个注册方法,注释也写的很清楚:
然后我们导入这个头文件之后,直接根据已经有的APPID进行注册:
好,其实步骤:1、导入微信支付SDK,注册微信支付。然后2、设置微信APPID为URL Schemes前面已经做好了。
然后我们需要进行3、发起支付,调其微信支付,在这之前,我们直接看看微信官方提供给我们的Demo:
最后我们找到了Demo中完整的可以直接用的这部分发起微信支付的源码:
将这段直接拷贝到我的工程中,有那么一点经验的开发者就会注意到一些,比如Demo源码使用了MRC的autorelease,你可以手动去掉,类方法可以换成实例方法,根据你的实际项目开发需求:
1 - (NSString *)jumpToBizPay { 2 3 //============================================================ 4 // V3&V4支付流程实现 5 // 注意:参数配置请查看服务器端Demo 6 // 更新时间:2015年11月20日 7 //============================================================ 8 NSString *urlString = @"http://wxpay.weixin.qq.com/pub_v2/app/app_pay.php?plat=ios"; 9 //解析服务端返回json数据10 NSError *error;11 //加载一个NSURL对象12 NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]];13 //将请求的url数据放到NSData对象中14 NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];15 if ( response != nil) {16 NSMutableDictionary *dict = NULL;17 //IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中18 dict = [NSJSONSerialization JSONObjectWithData:response options:NSJSONReadingMutableLeaves error:&error];19 20 NSLog(@"url:%@",urlString);21 if(dict != nil){22 NSMutableString *retcode = [dict objectForKey:@"retcode"];23 if (retcode.intValue == 0){24 NSMutableString *stamp = [dict objectForKey:@"timestamp"];25 26 //调起微信支付27 PayReq* req = [[PayReq alloc] init];28 req.partnerId = [dict objectForKey:@"partnerid"];29 req.prepayId = [dict objectForKey:@"prepayid"];30 req.nonceStr = [dict objectForKey:@"noncestr"];31 req.timeStamp = stamp.intValue;32 req.package = [dict objectForKey:@"package"];33 req.sign = [dict objectForKey:@"sign"];34 [WXApi sendReq:req];35 //日志输出36 NSLog(@"appid=%@\npartid=%@\nprepayid=%@\nnoncestr=%@\ntimestamp=%ld\npackage=%@\nsign=%@",[dict objectForKey:@"appid"],req.partnerId,req.prepayId,req.nonceStr,(long)req.timeStamp,req.package,req.sign );37 return @"";38 }else{39 return [dict objectForKey:@"retmsg"];40 }41 }else{42 return @"服务器返回错误,未获取到json对象";43 }44 }else{45 return @"服务器返回错误";46 }47 }
哦,对了,还有一个很简单但很必要的操作忘记展示出来了:
进一步,我们在微信的SDK源码头文件中,可以找到两个很有用的方法,你也可以在微信支付平台打开开发者文档找到这两个方法的介绍:
然后我将其运用在我的工程中
好,就这样,步骤:3、发起微信支付,调起微信 到这里就完成了。
最后还需要做的就是,处理返回微信支付返回信息,使用了微信知否功能,不管是支付成功和失败,甚至还是用户自己取消支付,都会需要返回当前应用,并返回相关的信息。
这里就需要用到微信SDK的处理返回信息的代理协议和代理方法了:
在微信SDK的头文件中,我们可以找到protocol协议:
好,我们也官方Demo中看看它是如何使用的:
而我们只需要使用下面红色框框起来的部分代码,直接拷贝拿来使用:
回到我的简易工程中,直接粘贴在里面用:
那么这里面的返回信息中主要就有两个东西:resp.errCode错误码 和 resp.errStr错误原因,这两个东西在实际开发中经常遇到,所以也是面试会问到的一个细节。
接着你可以通过点进连接:pay.weixin.qq.com/wiki/doc/api/app.php?chapter=8_5 可以在官方开发文档中找到:
然后,根据实际开发需求,我们可能还需要回传微信app的相关信息:
在当前AppDelegate.m文件添加一个代理方法:
5. 이제 전체 WeChat 결제 사용 프로세스가 완료되었습니다. 시뮬레이터에서는 WeChat을 설치하기 어렵기 때문에 이제 실제 기기를 사용하여 테스트할 수 있습니다.
전재할 경우 출처를 명시하세요: www.cnblogs.com/goodboy-heyang/p/5255818.html, 노동.
마지막으로 마스터 github에도 WeChat 설명과 소스 코드가 있다는 것을 우연히 발견했습니다.
github.com/renzifeng/WXPay
하지만 여기서도 배울 수 있습니다. , 없으신 분들을 위해 99달러에 개발자 계정을 구입했습니다. GitHub에서 다운로드한 소스 코드는 실제 머신에서 직접 테스트할 수 없습니다. 그 이유는 그 당시 XCode가 비교적 일찍 생성되었기 때문입니다. 개발자 계정이 없으면 실제 머신을 지원하지 않습니다.
위 내용은 IOS WeChat 결제 개발 단계에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

WebStorm Mac 버전
유용한 JavaScript 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기