Worldpay を angular2 アプリに統合しようとしています。
ページにスクリプトを含める必要がある
独自のフォーム( own-form ) アプローチを使用しています:<script src="https://cdn.worldpay.com/v1/worldpay.js"></script>
いくつかの入力に特定の属性を追加:data-worldpay
そしてWorldpay.jsロジックをフォームに添付します...
1. Worldpay.js
をページに含める
2. 関連する属性を使用して支払いフォームを作成する
どうすれば次のステップに進むことができますか...私はその問題で立ち往生しています:
5. Worldpay.js をフォームに添付します。
<script type="text/javascript">
var form = document.getElementById('paymentForm');
Worldpay.useOwnForm({
'clientKey': 'your-test-client-key',
'form': form,
'reusable': false,
'callback': function(status, response) {
document.getElementById('paymentErrors').innerHTML = '';
if (response.error) {
Worldpay.handleError(form, document.getElementById('paymentErrors'), response.error);
} else {
var token = response.token;
Worldpay.formBuilder(form, 'input', 'hidden', 'token', token);
form.submit();
}
}
});
</script>
なんで?
angular2 は<script
テンプレートからすべてのタグを削除します。
回避策があれば、ngAfterViewInit()
メソッドのページにいくつかのスクリプトを挿入できると仮定します(最初のステップで行ったように)
ngAfterViewInit(): void {
let s = document.createElement("script");
s.type = "text/javascript";
s.src = "https://cdn.worldpay.com/v1/worldpay.js";
this.worldPayScriptElement.nativeElement.appendChild(s);
}
this.worldPayScriptElement
テンプレートの div の ViewChild は次のとおりです。<div #worldPayScriptElement hidden></div>
しかし、処理ルールの結果として、worldpay は私のフォームの機密データをCreditCardTokenというフィールドに置き換えます。
ソースから:最後に、 Worldpay.formBuilder() ですべての機密カード データがフォームから削除され、トークンに置き換えられてから、フォームがサーバーに送信されます。 ソース: https://developer.worldpay.com/jsonapi/docs/own-form
これを統合し続ける方法...理解できません。
リクエストに基づいて CreditCardToken を返す API があればGET/POST
完璧ですが、ドキュメントからは、そのための適切な方法がまだ見つかりませんでした...
どんな種類の提案でも本当に感謝します。