16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FORKAdvent Calendar 2020

Day 25

PayPay for Developersやってみた

Last updated at Posted at 2020-12-24

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コードをとりあえず生成するところまでやったのですが、他にも実装しなきゃいけない機能がまだまだあるので、
個人ではアプリでマイコードを発行すればいいのでは?という考えは捨てて、
サンタさんにちゃんと送金してもらえるように実装していきたいと思います。

16
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?