objective-c - ios端整合支付寶的手機網站付款轉APP付款,無法調起H5
迷茫
迷茫 2017-05-02 09:37:04
0
0
719

本人最近在對接支付寶 SDK 實現行動支付功能。從官網下了最新的DEMO,配置好參數以後,運作正常。然後按照教程一步步整合到自己的專案中去,該注意的也都注意了,編譯OK。因手機已經安裝了支付寶客戶端,因此需要在Appdelegate 中取得同步結果,程式碼如下(Swift):

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {

if (url.host! as String) == "safepay" {
    // 支付跳转支付宝钱包进行支付,处理支付结果
    AlipaySDK.defaultService().processOrderWithPaymentResult(url, standbyCallback: { (resultDic) in
        print("result = \(resultDic)")
    })
}
return true

}

// NOTE: 9.0以後使用新API介面
func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {

if (url.host! as String) == "safepay" {
    // 支付跳转支付宝钱包进行支付,处理支付结果
    AlipaySDK.defaultService().processOrderWithPaymentResult(url, standbyCallback: { (resultDic: [NSObject : AnyObject]!) in
        print("result = \(resultDic)")
    })
}
return true

}
真機運作後,跳到支付寶支付成功,再跳回自己的App 時,控制台能夠列印出同步結果(狀態是9000支付成功的),但程式直接crash,停在AlipaySDK.defaultService ().processOrderWithPaymentResult 方法中,控制台就顯示(lldb)。

隨後我嘗試將 AlipaySDK.defaultService().processOrderWithPaymentResult 方法屏蔽掉,運行就正常了,不會崩潰。我又在另外一台真機上測試,因為這台真機沒有安裝支付寶客戶端,所以在H5中完成付款後會在:

AlipaySDK.defaultService().payUrlOrder(orderString as String, fromScheme: appScheme, callback: { (resultDic) in

        print(resultDic)
    })

方法中取得同步結果,但這次控制台沒有列印同步結果,直接 crash。
這說明只要我一呼叫取得同步結果的方法就會 crash。無奈我又新建一個測試的 Swift 項目,同樣的方法集成支付寶 SDK,一樣的程式碼,結果發現運作正常,壓根不會有之前的崩潰現象!我懷疑會不會是跟別的第三方函式庫發生衝突了,但是之前也遇到過兩個三方函式庫衝突,一般都是重定義的問題,編譯也不會通過。

實在找不出問題在哪,求這裡的大大們有沒有遇到過我這個問題,跪謝!

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回覆(0)
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!