支払統合
5524 ワード
アリペイ支払い
支付宝の統合導入を行うSDKがDemo付きバージョンであれば、後続のSDK更新の際に、SDKをダウンロードして導入し、エラーが発生すると、解決策はDemo付きのパッケージファイルを再ダウンロードしてSDKを導入することです.アリペイの支払いを行うには
支払いが完了した後、
この拡張クラスを使用するには、
そして支払いコールバックを行います
微信支払い
SDKのインポート
ウィーチャット決済の呼び出し方法
支払コールバックを行う
微信授権https://www.jianshu.com/p/098088242f45
支付宝の統合導入を行うSDKがDemo付きバージョンであれば、後続のSDK更新の際に、SDKをダウンロードして導入し、エラーが発生すると、解決策はDemo付きのパッケージファイルを再ダウンロードしてSDKを導入することです.アリペイの支払いを行うには
Scheme
に転送する必要があります.私たちはinfo
にURL Schemes
を登録する必要があります.そうしないと、支払い後のコールバックはできません.支払いの振り替え方法は以下の通りです. let order = AlipaySDK()
//s.requestArgument = []
sessionManager.executeRequest(withSession: s) { [weak self](S) in
if S.isSucess {
let orderStr = (S.responseObject["RETURN_DATA"] as! Dictionary)["orderStr"] ?? ""
order.payOrder(orderStr, fromScheme: AliPayscheme, callback: { (result) in
})
}
}
支払いが完了した後、
AppDelegate
で支払い結果のコールバックを行う必要があり、ここに拡張クラスを追加し、対応する位置で応答の処理を行う.class AliSdkManager: NSObject {
public static var aliSdkManager:AliSdkManager!
public static func sharedManager () -> AliSdkManager{
AliSdkManager.aliSdkManager = AliSdkManager.init()
return AliSdkManager.aliSdkManager
}
internal func showResult(result:NSDictionary){
// 9000
// 8000
// 4000
// 6001
// 6002
let returnCode:String = result["resultStatus"] as! String
switch returnCode{
case "6001":
break
case "8000":
break
case "4000":
break
case "9000":
break
default:
break
}
}
}
この拡張クラスを使用するには、
AppDelegate
に登録する必要があります._ = AliSdkManager.sharedManager()
そして支払いコールバックを行います
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if url.host == "safepay" {
AlipaySDK.defaultService().processOrder(withPaymentResult: url as URL!, standbyCallback: {
(resultDic) -> Void in
//
AliSdkManager.aliSdkManager.showResult(result: resultDic! as NSDictionary);
})
}
// return true;
return WXApi.handleOpen(url, delegate: self)
}
微信支払い
SDKのインポート
pod 'WechatOpenSDK'
info
にURL Schemes
を登録する必要があります.内容は微信オープンプラットフォームに登録されたAppIDに記入します.そうしないと、支払いに成功した後、プログラムに戻ってSDKの登録を完了することはできません.WXApi.registerApp(wxAppKey, enableMTA: true) //wxAppKey AppID
ウィーチャット決済の呼び出し方法
let s = getMYSession(self)
s.requestId = "" //
s.requestArgument = [] //
sessionManager.executeRequest(withSession: s) { [weak self](S) in
if S.isSucess {
let request = PayReq.init()
request.prepayId = (S.responseObject["RETURN_DATA"] as! Dictionary)["prepay_id"]
request.partnerId = (S.responseObject["RETURN_DATA"] as! Dictionary)["partnerid"]
request.package = (S.responseObject["RETURN_DATA"] as! Dictionary)["package"]
request.nonceStr = (S.responseObject["RETURN_DATA"] as! Dictionary)["nonstr"]
let time = (S.responseObject["RETURN_DATA"] as! Dictionary)["timestamp"] //as! Int
// let timeInt = Int(time!)
let timestamp : UInt32 = UInt32.init(exactly: Double(Int(time!)!))!
request.timeStamp = timestamp
request.sign = (S.responseObject["RETURN_DATA"] as! Dictionary)["paysign"]
// WXBackShowMessage = " "
WXApi.send(request)
}
}
支払コールバックを行う
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
if url.host == "safepay" {
AlipaySDK.defaultService().processOrder(withPaymentResult: url as URL!, standbyCallback: {
(resultDic) -> Void in
//
AliSdkManager.aliSdkManager.showResult(result: resultDic! as NSDictionary);
})
}
// return true;
return WXApi.handleOpen(url, delegate: self)
}
func application(_ application: UIApplication, handleOpen url: URL) -> Bool {
return WXApi.handleOpen(url, delegate: self)
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {
return WXApi.handleOpen(url, delegate: self)
}
func onResp(_ resp: BaseResp!) {
if resp .isKind(of: PayResp.self) {
switch resp.errCode {
case 0:
print(" ")
default:
print(" ")
break
}
}
}
微信授権https://www.jianshu.com/p/098088242f45