8

SDKで支払い機能を実装したいpaysbuy....問題はcancel、支払いが成功した後にユーザーが閉じる操作をキャンセルできるオプションがないことです。

デフォルトでは、SDK はWebView画面全体をカバーするデフォルトを開くメソッドを提供します..そして、任意のcancelオプションはありません..

cancel特定の支払いをロードしてボタンを追加したいview..viewcontrollerまたは..ビュー内で使用してみましたcontainer..ビュー内のcontainerビューとビューcancel外のボタンをロードしましcontainerたが、このプロセスを試してみると、フルスクリーンのデフォルトWebView。また、作成しようとしましたPopUPが、成功しませんでした

では、ボタンを配置できるように、特定の部分に of をwebviewロードするにはどうすればよいですか??SDKviewCancel

これは、sdk がサービスを開始するために提供するメソッドです。

- (void) callServiceWithCurrentView :(UIViewController *) currentViewController
                             invoice:(NSString *)invoice
                                item:(NSString *)item
                              amount:(NSString *)amount
                       paypal_amount:(NSString *)paypal_amount
                      transferMethod:(NSString *)transferMethod
                    customerLanguage:(NSString *)customerLanguage
                       operator_name:(NSString *)operator_name
                      operator_email:(NSString *)operator_email
                     operator_mobile:(NSString *)operator_mobile
                    operator_address:(NSString *)operator_address
                     operator_detail:(NSString *)operator_detail;

callServiceWithCurrentViewここで、メソッドがターゲットを示しているの を見ることができるので、デフォルトでは....のモードcurrentviewcontrollerでロードされると思います。full screenviewcontroller

これが私が迅速に実装した方法です

   paysBuy?.callServiceWithCurrentView(self, invoice: "343434343", item: "App Fee", amount: "10", paypal_amount: "1", transferMethod: "1", customerLanguage: "E", operator_name: "PAYSBUY", operator_email: "abc@paysbuy.com", operator_mobile: "0888888888", operator_address: "PAYSBUY.COM", operator_detail: "PAYMENT")

そして、成功または失敗の場合の応答を処理するデリゲート メソッド

extension PaysBuyHelper:PaysbuySDKDelegate{
    func responseWithResult(result: String!, andInvoice invoice: String!) {

        //here is the response of the payement

        println(result)
        println(invoice)

        if result == "00" {

            println("transaction complete and below is the invoice number")
            println(invoice)

        }else if result == "90"{

            println("transaction incomplete information")

        }

    }

}

これが私が行った作業です.... https://drive.google.com/file/d/0Bzk4QVQhnqKmVno5NGdPUV9ITkE/view?usp=sharing

4

1 に答える 1

7

モーダル コントローラーは、プレゼンテーション コンテキストを定義すると見なされるコントローラーのフレーム コンテキスト内に表示されます。

あなたが持っているオプションは、callServiceWithCurrentView使用される画面上の領域を制限するために使用できるモーダルプレゼンテーションのコンテキストを定義するコントローラーを呼び出すことです。

XCode でこれを行うには、表示しているコントローラーをクリックし、Defines Context チェックボックスを選択します。definesPresentationContextコードでは、を TRUE に設定できます。

これが役立つようにするには、提示するコントローラーのフレームが全画面表示にならないようにする必要があります。理想的な状況は、これが UINavigationController 内のコントローラーであるということです。

オプション:

1) 表示コントローラーは、ナビゲーション バーを備えたナビゲーション コントローラー内にあります。事実上、これは子コントローラーです。使用する画面のフットプリントは、上部と下部のバーの下にあるかどうかによって異なります。a) コンテンツがトップバーの下に入らないようにコントローラーを設定します。これにより、効果的にナビゲーション バーの下にフレームが作成されます。b) を呼び出すときcallServiceWithCurrentViewに、ナビゲーション バーにキャンセル ボタンを追加します。c) コントローラーを設定してプレゼンテーション コンテキストを適切に定義すると、UIWebView がナビゲーション バーの下に表示され、新しいキャンセル ボタンが表示されます。

2)ナビゲーションコントローラーにない場合は、メソッドを直接呼び出すのではなく、サブビュー内に子コントローラーを追加し、その上にキャンセルボタンを配置します。この子コントローラに call を実行させますcallServiceWithCurrentView。同じメカニズムに従って、この子コントローラーにコンテキストを定義させます。モーダル UIWebView は、子コントローラーの領域のみをカバーする必要があります。

これにより、いくつかのオプションが得られることを願っています。

于 2015-08-20T15:23:42.320 に答える