2017-04-06 6 views
0

私は正方形の支払いフォームの統合には新しいです。私はhttps://docs.connect.squareup.com/articles/adding-payment-formのドキュメントに従ってフォームを統合しています。個々のページにフォームを埋め込んでいますが、「ReferenceError:SqPaymentFormが定義されていません」というエラーを表示しているajaxでフォームスクリプトを読み込んでいます。いくつか私はajaxにフォームを埋め込む方法を提案してください。正方形のposカード決済フォームの統合ajax

答えて

0

ここでの問題は、外部ライブラリをロードする前にそれがvar paymentForm = new SqPaymentForm({...のようなものを持っている(あなたはおそらくページではJavaScriptを実行しようとしているということである。

あなたが非同期的にhttps://js.squareup.com/v2/paymentformをロードする場合は、あなたがする必要があります外部ライブラリがロードされるまで、ページ上のjavascriptの実行を遅らせる必要があります。これは、onloadイベントを介して、またはページが完全に読み込まれるまで待機することができます(または他の多くの方法で、 "async後にjavascriptを遅延させる"ライブラリを同期してロードするのが最も簡単な方法です。

+0

返信ありがとう – Anand

+0

私はこれを試しました '関数loadJavaScriptSync(filePath){ \t var req = new XMLHttpRequest(); \t req.open( "GET"、filePath、false); // 'false':同期。 \t req.send(null); \t var headElement = document.getElementsByTagName( "head")[0]; \t var newScriptElement = document.createElement( "script"); \t newScriptElement.type = "text/javascript"; \t newScriptElement.text = req.responseText; \t headElement.appendChild(newScriptElement); } \t \t \t \t \t loadJavaScriptSync( "https://js.squareup.com/v2/paymentformを"); ' 次いで呼ばれる'のvar paymentForm =新しいSqPaymentForm' 今コンソールのネットワークエラー。 – Anand

+0

**メインスレッド上の同期XMLHttpRequestは、エンドユーザーの経験に有害な影響を与えるため、非推奨です。その他のヘルプhttp://xhr.spec.whatwg.org** – Anand

関連する問題