PayHere Mobile SDK for iOS allows you to accept payments seamlessly within your iOS app, without redirecting your app user to the web browser.
- iOS 11.0+
- Xcode 11.0+
- Swift 5.0+
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
To integrate PayHere into your Xcode project using CocoaPods, specify it in your Podfile
:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'
use_frameworks! # add this line if not present
target '<Your Target Name>' do
pod 'payHereSDK'
end
Then, run the following command:
$ pod install
Import PayHere SDK into your UIViewController
import payHereSDK
let merchantID = ""
let item = Item(id: "item_1", name: "Item 1", quantity: 1, amount: 50.0)
let initRequest = PHInitialRequest(
merchantID: merchantID,
notifyURL: "",
firstName: "Pay",
lastName: "Here",
email: "test@test.com",
phone: "+9477123456",
address: "Colombo",
city: "Colombo",
country: "Sri Lanka",
orderID: "001",
itemsDescription: "PayHere SDK Sample",
itemsMap: [item],
currency: .LKR,
amount: 50.00,
deliveryAddress: "",
deliveryCity: "",
deliveryCountry: "",
custom1: "custom 01",
custom2: "custom 02"
)
let merchantID = ""
let item = Item(id: "item_1", name: "Item 1", quantity: 1, amount: 50.0)
let initRequest = PHInitialRequest(
merchantID: merchantID,
notifyURL: "",
firstName: "",
lastName: "",
email: "",
phone: "",
address: "",
city: "",
country: "",
orderID: "001",
itemsDescription: "",
itemsMap: [item1],
currency: .LKR,
custom1: "",
custom2: ""
)
let merchantID = ""
let item = Item(id: "item_1", name: "Item 1", quantity: 1, amount: 50.0)
let initRequest = PHInitialRequest(
merchantID: merchantID,
notifyURL: "",
firstName: "",
lastName: "",
email: "",
phone: "",
address: "",
city: "",
country: "",
orderID: "002",
itemsDescription: "",
itemsMap: [item1],
currency: .LKR,
amount: 60.50,
deliveryAddress: "",
deliveryCity: "",
deliveryCountry: "",
custom1: "",
custom2: "",
startupFee: 0.0,
recurrence: .Month(duration: 2),
duration: .Forver
)
let merchantID = ""
let item = Item(id: "item_1", name: "Item 1", quantity: 1, amount: 50.0)
let initRequest = PHInitialRequest(
merchantID: merchantID,
notifyURL: "",
firstName: "",
lastName: "",
email: "",
phone: "",
address: "",
city: "",
country: "",
orderID: "001",
itemsDescription: "",
itemsMap: [item1],
currency: .LKR,
custom1: "",
custom2: ""
)
let merchantID = ""
let item = Item(id: "item_1", name: "Item 1", quantity: 1, amount: 50.0)
let initRequest = PHInitialRequest(
merchantID: merchandID,
notifyURL: "",
firstName: "",
lastName: "",
email: "",
phone: "",
address: "",
city: "",
country: "",
orderID: "",
itemsDescription: "",
itemsMap: [item1,item2],
currency: .LKR,
amount: 0.0,
deliveryAddress: "",
deliveryCity: "",
deliveryCountry: "",
custom1: "",
custom2: "",
isHoldOnCardEnabled: true
)
In order to make a payment request, first initialize PayHere ViewController as below;
PHPrecentController.precent(from: self, withInitRequest: initRequest, delegate: self)
extension ViewController : PHViewControllerDelegate{
func onErrorReceived(error: Error) {
print("✋ Error",error)
}
func onResponseReceived(response: PHResponse<Any>?) {
guard let response = response else {
print("Could not receive payment response")
return
}
if(response.isSuccess()){
guard let resp = response.getData() as? payHereSDK.StatusResponse else{
return
}
print("Payment Success")
print("Payment Status", resp.status ?? -1)
print("Message", resp.message ?? "Unknown Message")
print("Payment No", resp.paymentNo ?? -1.0)
print("Payment Amount", resp.price ?? -1.0)
}
else{
print("Payment Error", response.getMessage() ?? "Unknown Message")
}
}
}
How to fixed [!] Unable to find a specification for payHereSDK issue
follow the instruction given bellow
$ pod repo remove master
$ pod setup
$ pod install