クレジットカード課金 の寄付 サイトを10分 で作 る Google In App Payments APIとJWTのサンプル
解説
Googleが
あくまで
JWTの
動作 デモ(実際 には支払 いはされません)
テスト
準備
- サンドボックスサーバーにて
販売 者 アカウントを作成 します。 - サンドボックス
設定 ページにてSeller IDとSeller Secretを取得 します。今回 はPostbackURLは空欄 にしておきます。 - ソースコードの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>