2017-02-17 1 views
0

私の顧客がPayPal API経由で支払いできるECサイトを構築しています。さて、サンドボックスを使ってどのように動作するかを学んでいます。 https://developer.paypal.com/docs/integration/direct/billing-plans/PayPal REST API:請求プランを有効にしようとしましたが、「HTTP/1.1 401 Unauthorized」を取得しようとしています

PayPalアプリを作成し、 にアクセストークンを取得し、API呼び出しを行ったという前提条件を満たすことができました。そして、私は、アクセストークンを置き換えるだけで、ページ上のサンプルコマンドをコピー&ペーストして請求計画を立てました。

今、請求計画を有効にしたいが、成功できませんでした。

使用されたコマンドは、次のようにページからコピーアンドペーストされます。

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" 
    } 
}]' 

まず、指示通りに、私はちょうど計画を作成するために、以前の応答で提供鉱山、との計画ID「P-7DC96732KA7763723UOPKETA」を置き換えます。

* 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":["ttps://api.paypal.com/v1/payments/.*","ttps://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 

クライアントIDのような他のパラメータの置き換えを試しましたが、運がありませんでした。

他のパラメータを置き換える必要がありますか? または、私は間違ったことをしましたか?

+0

正しいアクセストークンを使用しましたか? –

+0

あなたの投稿をありがとう。はい、私が保管した記録によると、前提条件のプロセスから得た正しいアクセストークンを使用しました。私は、それ以外の場合、請求計画を立てることに成功しなかったと思います。ちなみに、私が今持っている問題(課金プランを有効にする)は、私の元の投稿に示されているように、コマンドラインに入れなければならないコマンドに関するアクセスコードは必要ありません。間違っている場合は私を修正してください。再度、感謝します! – wiaylise

+0

これが解決されました。私自身の答えを見てください。あなたはアクセストークンについて正しいです。私が使用した成功したコマンドにはアクセストークンが含まれています。ご協力いただき誠にありがとうございます!! – wiaylise

答えて

1

解決済み。

On this page, I found simpler and more straightforward command

、以下から構成される:

* 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"}]} 

ガットHTTP 200と状態 "ACTIVE":

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"} 
]' 

は、以下のような応答を得ました。

お手数をおかけしていただきありがとうございます。

関連する問題