29048
PayPal REST APIで定期支払いをどう実装するのでしょうか。
CC BY-SA 3.0
2016-09-22T06:40:41.697
29047
2016-09-22T07:23:53.520
15576
question
paypal rest
定期支払いのPayPal REST APIを実装する方法を教えてください。
定期支払いのPayPal REST APIを実装するには、次の4つのステップがあります。  
1\. 請求設定の作成（Create a plan）  
2\. 請求設定の有効化（Update a plan(Active a Plan)）  
3\. 請求処理規約の作成（Create an agreement under a plan）  
4\. 請求処理規約の実行（excute the agreement）  
開始する前に、ご使用の REST APIアプリの設定で、REST
APIのアプリ購読（Subscriptions）がオンに切り替えられていることを確認します。

**請求設定の作成：**  
<https://developer.paypal.com/docs/api/#create-a-plan>

```

    curl -k -v -H 
    “Content-Type:application/json” 
    -H “Authorization: Bearer ACCESS_TOKEN” 
    -d '{“name”:”Test REST Club Plan”,
    “description”:”Template creation.”,
    “type”:”fixed”,
    “payment_definitions”:[{“name”:”Regular Payments”,
    “type”:”REGULAR”,
    “frequency”:”MONTH”,
    “frequency_interval”:”2”,
    “amount”:{“value”:”100”,
    “currency”:”USD”},
    “cycles”:”12”,
    “charge_models”:[{“type”:”SHIPPING”,
    “amount”:{“value”:”10”,
    “currency”:”USD”}},
    {“type”:”TAX”,
    “amount”:{“value”:”12”,
    “currency”:”USD”}}]}],
    “merchant_preferences”:{“setup_fee”:{“value”:”1”,
    “currency”:”USD”},
    “return_url”:”http://returnurl”,
    “cancel_url”:”http://cancelurl”,
    “auto_bill_amount”:”YES”,
    “initial_fail_amount_action”:”CONTINUE”,
    “max_fail_attempts”:”0”}}' https://api.sandbox.paypal.com/v1/payments/billing-plans
    
```

PayPalは、「P-」で始まる請求設定IDを返します。

**請求設定の有効化：**  
<https://developer.paypal.com/docs/api/#update-a-plan>

```

    curl -k -v -H 
    “Content-Type:application/json” 
    -H “Authorization: Bearer ACCESS_TOKEN” 
    -d '[{“path”:”/”,
    “value”:{“state”:”ACTIVE”},
    “op”:”replace”}]' https://api.sandbox.paypal.com/v1/payments/billing-plans/
    
```

**請求処理規約の作成**  
<https://developer.paypal.com/docs/api/#create-an-agreement>

```

    curl -k -v -H 
    “Content-Type:application/json” 
    -H “Authorization: Bearer ACCESS_TOKEN” 
    -d '{“name”:”Test REST Club Plan”,
    “description”:”Template creation.”,
    “start_date”:”2015-03-20T07:49:27-07:00”,
    “plan”:{“id”:”PLAN_ID_HERE”},
    “payer”:{“payment_method”:”paypal”},
    “shipping_address”:{“line1”:”111 First Street”,
    “city”:”Saratoga”,
    “state”:”CA”,
    “postal_code”:”95070”,
    “country_code”:”US”}}' https://api.sandbox.paypal.com/v1/payments/billing-agreements
    
```

PayPalは、以下のように、ECトークンでエクスプレス チェックアウトのリダイレクトURLを返します。  
[https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=EC-
xxxxxxxxxxxxxxxxx](https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-
checkout&token=EC-xxxxxxxxxxxxxxxxx)  
顧客を、復帰URL経由でPayPalサイトにリダイレクトする必要があります。請求処理規約が承認されると、顧客は、[請求設定の作成]で設定されたreturn_urlであるお客さまのECサイトにリダイレクトされます。

**請求処理規約の実行**  
<https://developer.paypal.com/docs/api/#execute-an-agreement>

```

    curl -k -v -H 
    “Content-Type:application/json” 
    -H “Authorization: Bearer ACCESS_TOKEN” 
    -d '{}' https://api.sandbox.paypal.com/v1/payments/billing-agreements/EC-TOKEN_HERE/agreement-execute
    
```

PayPalではテクニカルサポートの部署がありますので、何かPayPal実装関連の質問や技術的な質問がありましたら、下記URLで記事を検索してみてください。  
<https://jp.paypal-techsupport.com/>  
上記URLの一番下の「お問い合わせ」リンクをクリックしてまたは下記URLをアクセスして質問を送信してください。  
<https://jp.paypal-techsupport.com/app/ask>
CC BY-SA 3.0
2016-09-22T06:44:52.903
29048
2016-09-22T07:23:53.520
2016-09-22T07:23:53.520
15576
15576
29047
answer