質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PayPal

PayPalとは、インターネットやメールアドレスを利用した決済サービスのことです。PayPal口座を開設し、送金や入金を行うことができます。クレジットカード番号や口座番号などの情報を取り引き先に知らせる必要がないため、安全なサービスといわれています。アメリカを中心に全世界で多く使用されているオンライン決済サービスです。

REST

REST(Representational State Transfer)はwebアプリケーションの構築スタイルの一種です。HTTP GET/POSTによってリクエストを送信し、レスポンスはXMLで返されます。SOAPのようなRPCの構築と比べるとサーバからクライアントを分離することが出来る為、人気です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

2425閲覧

PayPal REST API: billing plan を activate しようとして不成功,“HTTP/1.1 401 Unauthorized”

wiaylise

総合スコア19

PayPal

PayPalとは、インターネットやメールアドレスを利用した決済サービスのことです。PayPal口座を開設し、送金や入金を行うことができます。クレジットカード番号や口座番号などの情報を取り引き先に知らせる必要がないため、安全なサービスといわれています。アメリカを中心に全世界で多く使用されているオンライン決済サービスです。

REST

REST(Representational State Transfer)はwebアプリケーションの構築スタイルの一種です。HTTP GET/POSTによってリクエストを送信し、レスポンスはXMLで返されます。SOAPのようなRPCの構築と比べるとサーバからクライアントを分離することが出来る為、人気です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2017/02/17 14:03

###前提・実現したいこと
PayPal の REST API を使って,顧客がクレジットカードで支払いできる EC サイトを準備中です.Sandbox を使って REST API を検証中です.参照サイト(英文)

以下の Prerequisites (前提) には成功しました:

  • PayPal App の作成
  • Access Token の取得
  • API Call

次いで,Billing Plan 作成も,参照サイトのコマンドをコピペで成功(Access Token のみ,取得の物に差替え)

この Billing Plan を activate する必要がありますが,これに成功できません.コマンドは参照サイトからのコピペで,Plan ID ("P-7DC96732KA7763723UOPKETA" の部分)のみ,プラン作成時の Response で与えられたものに差替えました.

curl -v -k -X PATCH https://api.sandbox.paypal.com/v1/payments/billing-plans/P-7DC96732KA7763723UOPKETA/ \ -H 'X-PAYPAL-OAUTH-CONTEXT: {"consumer":{"accountNumber":1181198218909172527,"merchantId":"5KW8F2FXKX5HA"},"merchant":{"accountNumber":1659371090107732880,"merchantId":"2J6QB8YJQSJRJ"},"apiCaller":{"clientId":"AdtlNBDhgmQWi2xk6edqJVKklPFyDWxtyKuXuyVT-OgdnnKpAVsbKHgvqHHP","appId":"APP-6DV794347V142302B","payerId":"2J6QB8YJQSJRJ","accountNumber":"1659371090107732880"},"scopes":["https://api.paypal.com/v1/payments/.*","https://uri.paypal.com/services/payments/futurepayments","openid"]}' \ -H 'Content-Type: application/json' \ -d '[{ "op": "replace", "path": "/", "value": { "state": "ACTIVE" } }]'

###発生している問題・エラーメッセージ
HTTP 200 が返ってくれば「成功」とのことですが,401 Unauthorized が返ってきてしまいます.

* Trying 173.0.82.78... * Connected to api.sandbox.paypal.com (173.0.82.78) port 443 (#0) * TLS 1.2 connection using TLS_RSA_WITH_AES_256_CBC_SHA256 * Server certificate: api.sandbox.paypal.com * Server certificate: Symantec Class 3 Secure Server CA - G4 * Server certificate: VeriSign Class 3 Public Primary Certification Authority - G5 > PATCH /v1/payments/billing-plans/P-8AX21799EN516221GJMBOECA/ HTTP/1.1 > Host: api.sandbox.paypal.com > User-Agent: curl/7.43.0 > Accept: */* > X-PAYPAL-OAUTH-CONTEXT: {"consumer":{"accountNumber":1181198218909172527,"merchantId":"5KW8F2FXKX5HA"},"merchant":{"accountNumber":1659371090107732880,"merchantId":"2J6QB8YJQSJRJ"},"apiCaller":{"clientId":"AdtlNBDhgmQWi2xk6edqJVKklPFyDWxtyKuXuyVT-OgdnnKpAVsbKHgvqHHP","appId":"APP-6DV794347V142302B","payerId":"2J6QB8YJQSJRJ","accountNumber":"1659371090107732880"},"scopes":["https://api.paypal.com/v1/payments/.*","https://uri.paypal.com/services/payments/futurepayments","openid"]} > Content-Type: application/json > Content-Length: 78 > * upload completely sent off: 78 out of 78 bytes < HTTP/1.1 401 Unauthorized < Date: Fri, 17 Feb 2017 12:18:47 GMT < Server: Apache < paypal-debug-id: c46e304b4bb46 < Paypal-Debug-Id: c46e304b4bb46 < Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D1880%26app%3Dplatformapiserv%26TIME%3D669689432%26HTTP_X_PP_AZ_LOCATOR%3D; Expires=Fri, 17 Feb 2017 12:48:47 GMT; domain=.paypal.com; path=/; Secure; HttpOnly < Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT < Content-Length: 0 < Connection: close < Content-Type: text/plain; charset=ISO-8859-1 < * Closing connection 0

###試したこと
他のパラメータも変えてみました.
clientId を,PayPal App に紐づいているものに → 不成功.

###補足情報(言語/FW/ツール等のバージョンなど)
Mac ターミナル

他のパラメータも変更の必要があるでしょうか?
または,どこが手順を間違えていますでしょうか?

ご教示のほどよろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

解決しました.

Activate するためのコマンドを,このページの"Update Plan"を参考に,以下のようにしました.

curl -v -X PATCH https://api.sandbox.paypal.com/v1/payments/billing-plans/<Plan ID>/ \ -H "Content-Type:application/json" \ -H "Authorization: Bearer <Access Token>" \ -d '[ { "path":"/", "value":{"state":"ACTIVE"}, "op":"replace"} ]'
* Trying 173.0.82.78... * Connected to api.sandbox.paypal.com (173.0.82.78) port 443 (#0) * TLS 1.2 connection using TLS_RSA_WITH_AES_256_CBC_SHA256 * Server certificate: api.sandbox.paypal.com * Server certificate: Symantec Class 3 Secure Server CA - G4 * Server certificate: VeriSign Class 3 Public Primary Certification Authority - G5 > GET /v1/payments/billing-plans/<Plan ID> HTTP/1.1 > Host: api.sandbox.paypal.com > User-Agent: curl/7.43.0 > Accept: */* > Content-Type:application/json > Authorization: Bearer <Access Token> > < HTTP/1.1 200 OK < Date: Sun, 19 Feb 2017 11:36:50 GMT < Server: Apache < paypal-debug-id: 3ca31778e271e < Content-Language: * < Paypal-Debug-Id: 3ca31778e271e < Set-Cookie: X-PP-SILOVER=name%3DSANDBOX3.API.1%26silo_version%3D1880%26app%3Dplatformapiserv%26TIME%3D1384360280%26HTTP_X_PP_AZ_LOCATOR%3D; Expires=Sun, 19 Feb 2017 12:06:52 GMT; domain=.paypal.com; path=/; Secure; HttpOnly < Set-Cookie: X-PP-SILOVER=; Expires=Thu, 01 Jan 1970 00:00:01 GMT < Vary: Authorization < Content-Length: 1391 < Connection: close < Content-Type: application/json < * Closing connection 0 {"id":"<Plan ID>","state":"ACTIVE","name":"Sample Plan", [中略] "rel":"self","method":"GET"}]}

無事 Activate できました.

投稿2017/02/19 11:51

wiaylise

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問