PayUMoney の Web サイトから PayUMoney iOS SDK をダウンロードしました。SDK を私の迅速なプロジェクトに統合できなくなりました。
1 に答える
この回答は PayU のドキュメント自体から取得したものです。ドキュメントを実装するのに何時間もかかったという理由だけで、ここで回答しています。
こんにちは、非シームレスな統合についてご案内できます。 https://github.com/payu-intrepos/Documentations/wiki/8.-iOS-SDK-integration#nonseamless
非シームレスな統合では、PayU は既に UI を提供しており、カードの種類とすべての支払いプロセスを処理します。最後に、失敗した場合の理由とすべての詳細とともに、トランザクションのステータスが通知されます。
ここから SDK をダウンロードします: https://github.com/payu-intrepos/iOS-SDK-Sample-App/archive/3.8.1.zip
サンプルコードから「BusinessLayer」フォルダのファイルをコピー。
必要なファイルがすべて揃っていることを願っています。これで、統合をさらに進めることができます。
PayU チームには Swift SDK が存在しないため、PayU を Swift と統合しています。目的の C へのブリッジに進む必要があります。これについては、こちらを参照してください: How to call Objective-C code from Swift
ヘッダー ファイルが作成され、ビルド設定で構成されたら、SDK の次のヘッダーをインポートします。
#import "PayU_iOS_CoreSDK.h"
#import <CommonCrypto/CommonHMAC.h>
#import "PUUIPaymentOptionVC.h"
#import "PUSAWSManager.h"
#import "PUSAWSManager.h"
#import "PUSAHelperClass.h"
これで、環境/プロジェクトで PayU SDK を使用する準備が整いました。
支払いに使用される 3 つのメイン オブジェクトの新しいインスタンスを作成します 1) 支払いパラメータ 2) ハッシュ値 2) ヘルパークラス// ハッシュ値を計算します
これをviewDidLoad()の上に貼り付けます
let paymentParam: PayUModelPaymentParams = PayUModelPaymentParams()
var hashes :PayUModelHashes = PayUModelHashes()
let PUSAhelper:PUSAHelperClass = PUSAHelperClass()
これは、さらに処理するために作成した関数です
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)")
}
}
}
コピーして貼り付ける側でエラーが発生するカスタム関数がいくつかあります。ここで言及しています。それらの世話をしてください
1)loadVC("PUUIMainStoryBoard", strVCId: VC_IDENTIFIER_PAYMENT_OPTION) //View Controllerをロードするために作成したLoadvc関数。View Controllerを呼び出すときに変更する必要があります
2)runOnMainThread({ // この関数は、メイン スレッドでコードを実行するためのものです。
PayU チームから提供されたすべてのテスト資格情報を使用しました。詳細については、https ://www.payumoney.com/pdf/PayUMoney-Technical-Integration-Document.pdf を参照してください。
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.paymentResponseReceived(_:)), name: kPUUINotiPaymentResponse, object: nil)
//この行で、支払いプロセスのステータスに関して通知するために支払いゲートウェイから送信される通知を追加します。通知を現金化します。
func paymentResponseReceived(notify:NSNotification) {
print(notify)
}
notify.object で応答を取得します。https://github.com/payu-intrepos/Documentations/wiki/8.-iOS-SDK-integrationのドキュメントで、より洗練された言語と方法を見つけることができます。
この回答がお役に立てば幸いです。