Python
Django
webpay
AngularJS

webpay 連携で困ってた件

More than 1 year has passed since last update.

webpay, Django, Angularjs 連携で困ってた件

checkouthelperボタンが二回目以降表示されない

  • SPAの場合毎回webpayのscriptを読み込まない現象で二回目以降はボタンが表示されなくなった
  • 解決方法 以下のコードを追加
$scope.init = function() {
    window.WebPay = void(0);
    window.WebPayCheckoutHelper = void(0);
}

webpayのpublic keyとsecret keyの違い

  • 二つのkeyの違いがずっと探せなかった。
  • publick_key : templete側にcheckouthelperボタンを表示するためのkey
  • secret_key : 取得したcustomer_idかtokenで決済を行う際にサーバー側でrequestパラメーターとして渡すkey(見せちゃいけない)

本番環境とローカル環境でのwebpay keyの切り分け処理

  • 以下をサーバー側で判断してkeyを設定したい
    • 本番だと"data-key="live_public_234u32942342..."
    • ローカル環境だと"data-key="test_public_jfi443of34f..."

以下の様にするとできると思ったが、ハードコディングは行けたが、サーバー処理が走るとscript処理が先に実行されkeyがないままエラーなる

  <script class="webpay-button"
          data-key="[[form_data.webpay_key]]"
          data-lang="ja"
          data-partial="true"
          data-text="カード情報を入力する"
          data-submit-text="カード情報入力完了"
          src="https://checkout.webpay.jp/v3/"</script>

解決方法としてはサーバーでkeyを取得する前にdata-key="[[form_data.webpay_key]]"を設定をしとく

## その他
- webpayはSPAにはあんまり向いてないかな。

以上、webpay 連携で困ってた件です。