4
11

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.

PayPayの開発者向けツール「PayPay for Developers」を試してみる

Posted at

自社で運営しているECサイトやアプリの支払いにPayPayを導入できる開発者向けツール「PayPay for Developers」が2020年7月にリリースされました。

sandbox環境で支払いが完了するところまで、試してみたいと思います。

PayPay for Developersに登録

まずはPayPay for Developersに登録します。
https://developer.paypay.ne.jp/

登録が完了すると、APIキーとテストユーザーが用意されます。

PayPay OPA SDKのインストール

今回はCentOS 7でPython3.6と、pip3.6がインストールされている環境で作業します。

pip3.6 install paypayopa

PayPay OPA SDKのバージョンは0.6.0がインストールされました。

QRコードの発行

PayPayアプリまたは、Webページで決済ができるウェブペイメントの実装方式を使って決済のQRコードを発行します。
"merchant_payment_id"に、ユニークな値を入れてリクエストします。

import paypayopa

client = paypayopa.Client(auth=(API_KEY, API_SECRET), production_mode=False)

request = {
    "merchantPaymentId": "merchant_payment_id",
    "codeType": "ORDER_QR",
    "redirectUrl": "http://www.example.com/success",
    "redirectType":"WEB_LINK",
    "orderDescription":"Example - Mune Cake shop",
    "orderItems": [{
        "name": "Moon cake",
        "category": "pasteries",
        "quantity": 1,
        "productId": "67678",
        "unitPrice": {
            "amount": 1,
            "currency": "JPY"
        }
    }],
    "amount": {
        "amount": 1,
        "currency": "JPY"
    },
}

response = client.Code.create_qr_code(request)
print(response)

レスポンスが返ってきます。

{
  "resultInfo": {
    "code": "string",
    "message": "string",
    "codeId": "string"
  },
  "data": {
    "codeId": "string",
    "url": "string",
    :
    省略
    :
    "redirectUrl": "string",
    "redirectType": "WEB_LINK",
    :
    省略
    :
  }
}

レスポンスのurlにスマホでアクセスするとPayPayを起動するか尋ねられます。
※ PayPayがインストールされていない場合は、支払い用のWebページが開きます。
image0_trim.jpeg
PayPayを起動して支払いを完了すると、3秒後自動でWebブラウザに戻ってredirectUrl(支払い完了ページなど)にリダイレクトされます。

これで支払いが完了しました。

PayPayアプリのテストユーザーのログイン方法はこちらを参考にしてください。
https://paypay.ne.jp/developers-faq/sandbox_environment/post-43/

支払い確認

支払いが完了したか調べるのにはGet Payment Detailsを使います。
先ほどの"merchant_payment_id"を使ってリクエストします。

import paypayopa

client = paypayopa.Client(auth=(API_KEY, API_SECRET), production_mode=False)

response = client.Payment.get_payment_details("merchant_payment_id")
print(response)

レスポンスのcodeに"SUCCESS"が返ってくれば支払い完了です。

{
  "resultInfo": {
    "code": "string",
    "message": "string",
    "codeId": "string"
  }
}

今後

最終的にはECサイトの支払い方法でPayPayが選べるようにしたいと思っています。

このようなイメージです。

  1. スマホのWebブラウザでECサイトにアクセス
  2. ECサイトで商品を購入するボタンを押下
  3. PayPayアプリが起動
  4. PayPayアプリで支払い
  5. 支払い完了後、自動でWebブラウザに戻る
  6. ECサイトで支払い完了ページを表示

本番で使うには、加盟店の申し込みをする必要があります。

sandbox環境はPayPay for Developersに登録すれば試せるので、興味がある方はお試しください。

4
11
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
4
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?