PayPay for Developersやってみた
メリークリスマス!
今年はいい子にしていたので、サンタさんからPayPay送金があるかもしれない!
サンタさんから送金してもらうにはQRコードがなきゃダメだ!
そうだPayPay for DevelopersでQRコードを生成しよう!
ということで
2020年7月29日よりPayPay for Developersの提供スタートしたらしいので、キャッシュレス信者なので触ってみようと思いました。
ツールの選択
現時点(2020年12月)で、ツールが7つあるのですが、請求書の支払いのためのQRコードの印刷とあったので、動的ユーザスキャンというツールを使ってみます。
言語の選択
4つの言語でPayment SDKがあり、今回はNode.jsで動かして行きます。
実装
ドキュメントに書いてあるとおりなのですが。
npm i @paypayopa/paypayopa-sdk-node
でNode.js用のPayment SDKをインストールし
今回はqr.jsを作成、その中に処理を書き
node qr.js
で処理を走らせます。
まずはSDKで認証させる処理を書きます。
'use strict';
const PAYPAY = require('@paypayopa/paypayopa-sdk-node');
PAYPAY.Configure({
clientId: 'API_KEY',
clientSecret: 'API_SECRET',
merchantId: 'MERCHANT_ID',
productionMode: false,
});
API_KEYとAPI_SECRETとMERCHANT_IDは自身のアカウントのものに置き換えてください。
次に、QRコードを作成します。
先程の続きで色々なパラメーターでQRコードをリクエストします。
'use strict';
let payload = {
merchantPaymentId: "my_payment_id",
amount: {
amount: 10000,
currency: "JPY"
},
codeType: "ORDER_QR",
orderDescription: "Mune's Favourite Cake",
isAuthorization: false
};
merchantPaymentIdは加盟店から提供された一意の支払い取引IDとあるのですが、同じものは使えない仕様です。
(QRコード生成ごとに、現状はテストなのでテスト時には適当な数字を入れました。)
amountは支払金額で高額設定したいところですね。
payloadの中にパラメーターを入れたら
PAYPAY.QRCodeCreate(payload, (response) => {
console.log(response);
});
こちらの関数で返却された、値にurlが入っているのでそこにアクセスすると、QRコードが表示されます。
ちょっと改造してnpmのopenを入れ勝手にブラウザを開くように調整しました。
const open = require('open');
PAYPAY.QRCodeCreate(payload, (response) => {
let body_arr = JSON.parse(response.BODY);
if(body_arr.resultInfo.code === 'SUCCESS'){
open(body_arr.data.url);
}
});
開いたurlのQRコードはテストモードなので、普通に決済できません。
テストモードでのQRコード作成なので決済を試すにはアプリをサンドボックスアプリにし、テストユーザーでログインしてテストする必要があります。
https://paypay.ne.jp/developers-faq/sandbox_environment/post-43/
やってみて
今回はQRコードをとりあえず生成するところまでやったのですが、他にも実装しなきゃいけない機能がまだまだあるので、
個人ではアプリでマイコードを発行すればいいのでは?という考えは捨てて、
サンタさんにちゃんと送金してもらえるように実装していきたいと思います。