(Translated by https://www.hiragana.jp/)
クレジットカード課金の寄付サイトを10分で作る Google In App Payments APIとJWTのサンプル

クレジットカード課金かきん寄付きふサイトを10ふんつくる Google In App Payments APIとJWTのサンプル

解説かいせつ

Googleが提供ていきょうするIn-App Paymentsを使つかったサンプルです。サイトやWebアプリないでクレジットカードまたはGooglePlayカードにて課金かきんおこなうことが出来できます。

本来ほんらいならばサーバーがわ商品しょうひん購入こうにゅう情報じょうほう生成せいせいしたり購入こうにゅう結果けっか処理しょりしなければいけないのですが、ここではサンプルのため、クライアントがわでJWTを生成せいせいして購入こうにゅう結果けっかはそのままてています。特別とくべつなサーバーは使つかっていません。いわば匿名とくめいでの寄付きふサイトです。

あくまで技術ぎじゅつてき実験じっけん情報じょうほうとしてご利用りようください。

JWTの生成せいせいにはjsjws利用りようしています。

動作どうさデモ(実際じっさいには支払しはらいはされません)

テストようのサンドボックスサーバーでのデモです。実際じっさいには支払しはらいされません。

準備じゅんび

  1. サンドボックスサーバーにて販売はんばいしゃアカウントを作成さくせいします。
  2. サンドボックス設定せっていページにてSeller IDとSeller Secretを取得しゅとくします。今回こんかいはPostbackURLは空欄くうらんにしておきます。
  3. ソースコードのSELLER_IDとSELLER_SECRETを上記じょうきのSeller IDとSeller Secretに変更へんこうします。

ソースコード

<html><body>

<script src="http://www.google.com/jsapi"></script>
<script>
    google.load('payments', '1.0', {
          'packages': ['sandbox_config']
    });
</script>

<script src="http://kjur.github.io/jsrsasign/jsrsasign-4.1.4-all-min.js"></script>
<script src="http://kjur.github.io/jsjws/ext/json-sans-eval-min.js"></script>
<script src='http://kjur.github.io/jsjws/jws-3.0.min.js'></script>

<script>
    var iss=SELLER_ID
    var secret=SELLER_SECRET
    var now=Math.floor(new Date().getTime()/1000)
    var exp=now+60*60*24*365*10
    var head={alg:'HS256',type:'JWT'}
    var payload={ 
        "iss" : iss,
        "aud" : "Google",
        "typ" : "google/payments/inapp/item/v1",
        "exp" : exp,
        "iat" : now,
        "request" :{
             "name" : "寄付きふ(テスト)",
            "description" : "カード番号ばんごうは4111 1111 1111 1111でその適当てきとうに。テストサーバーなので課金かきんはされません。",
            "price" : "10.50",
            "currencyCode" : "USD",
            "sellerData" : ""
        }
    }

    var key=rstrtohex(secret)
    var sJWS = KJUR.jws.JWS.sign(null, JSON.stringify(head), JSON.stringify(payload), key)

    function buy(){
        var purchaseContent={
            parameters: {},
            jwt: sJWS,
            success:function(result){
                var msg='支払しはらいが完了かんりょうしました(テスト)<br/>した番号ばんごうひかえておいてください<br/>'+result.response.orderId
                document.getElementById('status').innerHTML=msg
            },
            failure:function(result){
                document.getElementById('status').innerHTML='失敗しっぱいしました。支払しはらいは完了かんりょうしていません。'
            },
        }
        goog.payments.inapp.buy(purchaseContent)
    }

</script>

<input type='button' value='寄付きふ(テスト)' onclick='buy()' />
<div id='status'></div>

</body></html>

本番ほんばんサーバーへの移行いこう注意ちゅういてん

下記かき参考さんこうリンクをよくんで本番ほんばんサーバーの販売はんばいしゃ設定せっていおこない、packagesのsandbox_configを本番ほんばんサーバーよう変更へんこうします。

今回こんかい商品しょうひん販売はんばいしない寄付きふサイトの前提ぜんていなのでクライアントがわのJavascriptのなかにSellerSecretがはいっています。SellerSecretがられるということは自由じゆう商品しょうひん値段ねだん変更へんこうして購入こうにゅうされうることを意味いみしますたとえば将来しょうらいにおいてこのアカウントを商品しょうひん販売はんばい使つか場合ばあい問題もんだいとなりえます。このてん理解りかいうえ、あくまで技術ぎじゅつテストとして実験じっけんください。どうしても本番ほんばんサーバーで利用りようしたい場合ばあいあらかじ生成せいせいしたJWTをんでSellerSecretはHTMLにれずに利用りようしてください。これらのことがよくわからない場合ばあい絶対ぜったい本番ほんばんサーバーを使つかわないでください

本来ほんらい商品しょうひん購入こうにゅうにおいてはJWTをサーバーがわ生成せいせいする必要ひつようがあります。またPostbackURLにたいして購入こうにゅう通知つうちがGoogleからおくられるので適切てきせつ処理しょりしなければいけません。

この記事きじひとがよくんでいる記事きじ

トップページ

節約せつやくテクノロジ > クレジットカード課金かきん寄付きふサイトを10ふんつくる Google In App Payments APIとJWTのサンプル