iOS開発におけるアリペイ決済の統合(実は簡単)
4001 ワード
最近のプロジェクトでは支付宝を使って支払います.以前は支付宝を統合して支払うのが面倒だったことを覚えていますが、今回の統合支付宝の支払いは順調で、便利になりました.支付宝のオープンプラットフォームの技術者が統合ドキュメントを書くのがますます便利になったことに感謝します.アリペイ決済統合の公式ドキュメントを添付しますhttps://docs.open.alipay.com/204/105295/
大体の統合プロセスは1.公式demoをダウンロードすることです 2.AlipaySDK.bundle、AlipaySDK.frameworkの2つのフレームワークをプロジェクトにインポートし、アリペイSDK依存システムライブラリを追加します.3.AppDelegateで公式コードをコピーする
//iOS 9以上のシステムのみサポート
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options
{
//6.3の新しいAPI呼び出しは、海外のプラットフォーム(例えば、新版フェイスブックSDK、VKなど)の呼び出しに対応するため[6.2のapi呼び出しでコールバックがない場合]であり、国内のプラットフォームには影響しない
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url options:options];
if (!result) {
//その他、支払いなどのSDKのコールバック
if ([url.host isEqualToString:@"safepay"]) {
//アリペイ財布を振り替えて支払いを行い、支払い結果を処理する
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
}
return result;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
if (!result) {
//その他、支払いなどのSDKのコールバック
if ([url.host isEqualToString:@"safepay"]) {
//アリペイ財布を振り替えて支払いを行い、支払い結果を処理する
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
}
return result;
}
- (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);
}];
}
return YES;
}4.アリペイで支払う必要があるコントローラにヘッダファイルをインポートする
5.URL TypesのURL Schemesに独自に定義した一意の識別度を持つ文字列を記入します.これは、支付宝Appが支払った後に本Appに正常にジャンプできるようにするためです.このURL Schemesは、支払い時に使用する支払いコードのschemeStrパラメータと一致します.
6.支払いを行う
//schemeを適用し、AliSDKDEmo-Info.plistでURL typesを定義する
NSString*appScheme=@"一意識別子";
NSString * orderString = responseObject[@"data"][@"niu_index_response"];
//NOTE:支払い結果を呼び出して支払いを開始
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
NSLog(@"reslut = %@",resultDic);
NSString * memo = resultDic[@"memo"];
NSLog(@"===memo:%@", memo);
if ([resultDic[@"ResultStatus"] isEqualToString:@"9000"]) {
[SVProgressHUD showSuccessWithStatus:@"支払い成功";
}else{
[SVProgressHUD showErrorWithStatus:memo];
}
}]; 支払い方法:
/**
* 支払インタフェース
*
* @param orderStr オーダー情報
* @param schemeStr 支払いを呼び出すapp info.plistに登録されているscheme
* @param completionBlock支払結果コールバックBlock wap支払結果コールバック(非ジャンプ財布支払)
*/
- (void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;注文情報はバックグラウンドと対話することによって、私たち自身のバックグラウンドが私たちに返した注文情報です.
支付宝支付はこのように集積して、個人は簡単になったと感じて、助けを求める友达を助けたいと思っています!
大体の統合プロセスは1.公式demoをダウンロードすることです 2.AlipaySDK.bundle、AlipaySDK.frameworkの2つのフレームワークをプロジェクトにインポートし、アリペイSDK依存システムライブラリを追加します.3.AppDelegateで公式コードをコピーする
//iOS 9以上のシステムのみサポート
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary
{
//6.3の新しいAPI呼び出しは、海外のプラットフォーム(例えば、新版フェイスブックSDK、VKなど)の呼び出しに対応するため[6.2のapi呼び出しでコールバックがない場合]であり、国内のプラットフォームには影響しない
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url options:options];
if (!result) {
//その他、支払いなどのSDKのコールバック
if ([url.host isEqualToString:@"safepay"]) {
//アリペイ財布を振り替えて支払いを行い、支払い結果を処理する
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
}
return result;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
if (!result) {
//その他、支払いなどのSDKのコールバック
if ([url.host isEqualToString:@"safepay"]) {
//アリペイ財布を振り替えて支払いを行い、支払い結果を処理する
[[AlipaySDK defaultService] processOrderWithPaymentResult:url standbyCallback:^(NSDictionary *resultDic) {
NSLog(@"result = %@",resultDic);
}];
}
}
return result;
}
- (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);
}];
}
return YES;
}4.アリペイで支払う必要があるコントローラにヘッダファイルをインポートする
# import
5.URL TypesのURL Schemesに独自に定義した一意の識別度を持つ文字列を記入します.これは、支付宝Appが支払った後に本Appに正常にジャンプできるようにするためです.このURL Schemesは、支払い時に使用する支払いコードのschemeStrパラメータと一致します.
6.支払いを行う
//schemeを適用し、AliSDKDEmo-Info.plistでURL typesを定義する
NSString*appScheme=@"一意識別子";
NSString * orderString = responseObject[@"data"][@"niu_index_response"];
//NOTE:支払い結果を呼び出して支払いを開始
[[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
NSLog(@"reslut = %@",resultDic);
NSString * memo = resultDic[@"memo"];
NSLog(@"===memo:%@", memo);
if ([resultDic[@"ResultStatus"] isEqualToString:@"9000"]) {
[SVProgressHUD showSuccessWithStatus:@"支払い成功";
}else{
[SVProgressHUD showErrorWithStatus:memo];
}
}]; 支払い方法:
/**
* 支払インタフェース
*
* @param orderStr オーダー情報
* @param schemeStr 支払いを呼び出すapp info.plistに登録されているscheme
* @param completionBlock支払結果コールバックBlock wap支払結果コールバック(非ジャンプ財布支払)
*/
- (void)payOrder:(NSString *)orderStr
fromScheme:(NSString *)schemeStr
callback:(CompletionBlock)completionBlock;注文情報はバックグラウンドと対話することによって、私たち自身のバックグラウンドが私たちに返した注文情報です.
支付宝支付はこのように集積して、個人は簡単になったと感じて、助けを求める友达を助けたいと思っています!