一、創(chuàng)建并獲取對應(yīng)的ClientID
1、登錄paypal開發(fā)者網(wǎng)站
PayPal開發(fā)者官網(wǎng)地址:https://developer.paypal.com/classic-home/

image.png
2、創(chuàng)建App
DASHBOARD -> My Apps -> Creat APP

image.png
3、獲取ClientID
Sandbox:測試環(huán)境
Live:正式環(huán)境

獲取Sandbox對應(yīng)的ClientID

image.png
二、引入sdk
1、采用CocoaPods
pod 'PayPal-iOS-SDK'
2、注冊環(huán)境
/// AppDelegate中注冊
+ (void)kj_registerPaypal{
NSDictionary *dict = @{PayPalEnvironmentProduction:kPayPalLive,
PayPalEnvironmentSandbox:kPayPalSandbox,
};
[PayPalMobile initializeWithClientIdsForEnvironments:dict];
}
3、支付處理
備注:由于PayPal支付不需要喚起客戶端,內(nèi)部sdk有相對應(yīng)的控制器處理
/// 支付處理
+ (void)kj_paypalWithViewController:(UIViewController*)vc PaypalInfo:(KJPaypalInfo*)info SuccessBlock:(void(^)(bool success,NSDictionary *dict))block{
KJPaypalTool *tool = [[KJPaypalTool alloc]init];
[tool kj_paypalWithViewController:vc PaypalInfo:info SuccessBlock:block];
}
- (void)kj_paypalWithViewController:(UIViewController*)vc PaypalInfo:(KJPaypalInfo*)info SuccessBlock:(void(^)(bool success,NSDictionary *dict))block{
/// 配置支付環(huán)境
[PayPalMobile preconnectWithEnvironment:PayPalEnvironmentSandbox];
/// Paypal配置
PayPalConfiguration *paypalConfig = [[PayPalConfiguration alloc] init];
//是否接受信用卡
paypalConfig.acceptCreditCards = NO;
//商家名稱
paypalConfig.merchantName = @"商家名";
//paypal賬號下的地址信息
paypalConfig.payPalShippingAddressOption = PayPalShippingAddressOptionPayPal;
//配置語言環(huán)境
paypalConfig.languageOrLocale = [NSLocale preferredLanguages][0];
/// 配置支付相關(guān)信息
PayPalPayment *payment = [[PayPalPayment alloc] init];
//訂單總額
payment.amount = [NSDecimalNumber decimalNumberWithString:info.amount];
//貨幣類型-RMB是沒用的
payment.currencyCode = @"USD";
//訂單描述
payment.shortDescription = info.shortDescription;
//生成paypal控制器,并模態(tài)出來(push也行)
//將之前生成的訂單信息和paypal配置傳進來,并設(shè)置訂單VC為代理
PayPalPaymentViewController *paymentViewController = [[PayPalPaymentViewController alloc] initWithPayment:payment configuration:paypalConfig delegate:self];
[vc presentViewController:paymentViewController animated:YES completion:nil];
}
登錄和充值展示
![]() |
|---|
4、監(jiān)聽回調(diào)狀態(tài)
#pragma mark - PayPalPaymentDelegate
//訂單支付完成后回調(diào)此方法
- (void)payPalPaymentViewController:(PayPalPaymentViewController*)paymentViewController didCompletePayment:(PayPalPayment*)completedPayment {
NSLog(@"PayPal Payment Success!");
}
//用戶取消支付回調(diào)此方法
- (void)payPalPaymentDidCancel:(PayPalPaymentViewController*)paymentViewController {
NSLog(@"PayPal Payment Canceled");
}
5、查看訂單狀態(tài)
登錄到官網(wǎng):https://www.sandbox.paypal.com/signin

