PayHere Mobile SDK for iOS allows you to accept payments seamlessly within your iOS app, without redirecting your app user to the web browser.
The RB (Resource Bundle) Edition is different from the Original iOS SDK because it must be linked statically through Cocoapods.
The Original SDK is linked using dynamic Frameworks. You can use the RB Edition with technologies like React Native, since they don't support dynamic frameworks.
- iOS 11.0+
- Xcode 11.0+
- Swift 5.0+
- An iOS project using Static Libraries
CocoaPods is a dependency manager for Cocoa projects. You can install it with the following command:
$ gem install cocoapods
To integrate PayHere RB Edition into your Xcode project using CocoaPods, specify it in your Podfile
:
platform :ios, '10.0'
# use_frameworks! # Comment this line - rb version doesn't support use_frameworks
target '<Your Target Name>' do
pod 'payHereSDK', :git => 'https://github.com/PayHereDevs/payhere-mobilesdk-ios-rb.git'
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