服務端拿了從支付寶下載的demo的代碼過來用,在客戶端訪問服務端獲取orderstring然後調起支付寶后,發現提示支付錯誤。經過排查,發現傳過來的orderstring多了『amp;』,去除掉之後就可以正常調起支付寶,不得不說,支付寶和微信支付的demo真是有夠爛的,無法想象這麽大的公司連個正常的demo都沒有提供。
if let alipay = json!["alipay"] as? String {
let newStr = alipay.replacingOccurrences(of: "amp;", with: "")
AlipaySDK.defaultService().payOrder(newStr, fromScheme: System.appScheme_alisdk, callback: {(dic) in
})
}
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if url.host == "safepay" {
AlipaySDK.defaultService().processOrder(withPaymentResult: url, standbyCallback: { (dic) in
if let resultStatus = dic?["resultStatus"] as? String {
//成功支付后
if resultStatus == "9000" {
postNotificationForPaySuccess(nil)
}
}
})
//跳转支付宝钱包进行支付,处理支付结果
// AlipaySDK.defaultService().processAuthResult(url, standbyCallback: { (dic) in
// printLog(message: "支付宝钱包结果dic = \(dic)")
// })
}
return true
}