swift 打包sdk_如何在swift项目中集成PayUMoney iOS SDK

本文档详细介绍了如何在Swift项目中集成PayUMoney iOS SDK,包括创建桥接头文件以调用Objective-C代码,设置必要的参数和调用支付网关,以及处理支付响应通知。通过遵循此步骤,开发者可以实现非无缝集成,让PayUMoney提供UI并处理支付流程。
摘要由CSDN通过智能技术生成

bd96500e110b49cbb3cd949968f18be7.png

I've downloaded the PayUMoney iOS SDK from the PayUMoney website. I'm now unable to integrate the SDK with my swift project.

解决方案

This answer is taken from PayU documentation itself, i am answering here just because it took me hours to implement with their documentation.

In non seamless integration PayU is already providing UI and will handle the card type and all payment process and at the end you will be notified for the status of your transaction with reason if failed and all details.

From Sample code copy file from "BusinessLayer" folder.

So i hope you have all required files now we can go further with integration.

You are integrating PayU with swift, as there is no swift SDK is not present from PayU team we have to proceed with Briding to Objective-C .

You can find about this here:How to call Objective-C code from Swift

Once header file is created and configured in build setting, import the following Headers of SDK

#import "PayU_iOS_CoreSDK.h"

#import

#import "PUUIPaymentOptionVC.h"

#import "PUSAWSManager.h"

#import "PUSAWSManager.h"

#import "PUSAHelperClass.h"

Now we are ready to use PayU SDK into our environment/project.

Create new instance of 3 main object used for payment

1)Payment parameters

2)Hash Values

2)Helperclass// to calculate hash value

paste this above your viewDidLoad()

let paymentParam: PayUModelPaymentParams = PayUModelPaymentParams()

var hashes :PayUModelHashes = PayUModelHashes()

let PUSAhelper:PUSAHelperClass = PUSAHelperClass()

Here is function i have created for further processing

func continueWithCardPayment() {

paymentParam.key = "gtKFFx"

paymentParam.transactionID = "umangtxn123"

paymentParam.amount = "100.0"

paymentParam.productInfo = "Nokia"

paymentParam.SURL = "https://google.com/"

paymentParam.FURL = "https://facebook.com/"

paymentParam.firstName = "Umang"

paymentParam.email = "umangarya336@gmail.com"

paymentParam.environment = ENVIRONMENT_MOBILETEST

paymentParam.udf1 = "udf1"

paymentParam.udf2 = "udf2"

paymentParam.udf3 = "udf3"

paymentParam.udf4 = "udf4"

paymentParam.udf5 = "udf5"

paymentParam.offerKey = "" // Set this property if you want to give offer:

paymentParam.userCredentials = ""

PUSAhelper.generateHashFromServer(self.paymentParam) { (hashes, errorString) in

self.hashes = hashes

self.paymentParam.hashes = hashes

self.callPaymentGateway()

}

}

func callPaymentGateway() {

let webServiceResponse :PayUWebServiceResponse = PayUWebServiceResponse()

webServiceResponse.getPayUPaymentRelatedDetailForMobileSDK(paymentParam) { (paymentDetail, errString, extraParam) in

if errString == nil {

let payOptionVC: PUUIPaymentOptionVC = loadVC("PUUIMainStoryBoard", strVCId: VC_IDENTIFIER_PAYMENT_OPTION) as! PUUIPaymentOptionVC

payOptionVC.paymentParam = self.paymentParam

payOptionVC.paymentRelatedDetail = paymentDetail

runOnMainThread({

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.paymentResponseReceived(_:)), name: kPUUINotiPaymentResponse, object: nil)

self.navigationController?.pushViewController(payOptionVC, animated: true)

})

}

else{

print("Failed to proceed for payment : \(errString)")

}

}

}

There are some My custom function that will through error at your side you copy paste, i am mentioning them here. Do take care of them

1)loadVC("PUUIMainStoryBoard", strVCId: VC_IDENTIFIER_PAYMENT_OPTION)

//Loadvc function i have created to load view controller, you have to change it as you call your view controller

2)runOnMainThread({

// This function is for running code on main thread.

I have used all test credentials provided by PayU team

you can find more in their doc :https://www.payumoney.com/pdf/PayUMoney-Technical-Integration-Document.pdf

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.paymentResponseReceived(_:)), name: kPUUINotiPaymentResponse, object: nil)

//With this line we are adding notification sent by payment gateway to notify us regarding the status of the payment process, lets cash the notification.

func paymentResponseReceived(notify:NSNotification) {

print(notify)

}

You will get the response in notify.object.

You can find more sophisticated language and way at their document:https://github.com/payu-intrepos/Documentations/wiki/8.-iOS-SDK-integration.

Hope this answer may help you.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值