PayHere Mobile SDK for iOS
PayHere Mobile SDK for iOS 允许您在 iOS 应用中无缝接受支付,无需将您的应用用户重定向到网络浏览器。
内容
要求
- iOS 11.0+
- Xcode 11.0+
- Swift 5.0+
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。您可以使用以下命令安装它
$ gem install cocoapods
要使用 CocoaPods 集成 PayHere 到您的 Xcode 项目中,请在您的 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
然后,运行以下命令
$ pod install
使用方法
将PayHere SDK导入到您的UIViewController中
import payHereSDK
创建InitRequest
结账
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: "[email protected]",
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
)
Precent PayHere支付视图
为了发出支付请求,首先按以下步骤初始化PayHere ViewController;
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")
}
}
}
常见问题解答
如何修复![无法找到payHereSDK的规范]问题
按照以下说明操作
$ pod repo remove master
$ pod setup
$ pod install