PayPal 請求書 ステータス確認

PayPal 請求書 ステータス確認

文字型データ項目で指定した Paypal Invoice ID のステータス を文字型データ項目に格納し、支払い済の場合には支払日時と金額をデータ項目に格納します

2017 © Questetra, Inc. (MIT License)
https://support.questetra.com/ja/addons/paypal-status/

Configs
  • A: PayPal-REST-API の Client ID と SECRET を2行に分けてセットしてください *
  • B: Paypal Invoce ID が格納されている文字列型データを選択してください *
  • C: Paypal Invoce Status が格納される文字列型データを選択してください (更新) *
  • D: 支払タイムスタンプが格納される文字列型データを選択してください (更新)
  • E: 支払金額が格納される数値型データを選択してください (更新)
Script
//// == 工程コンフィグの参照 / Config Retrieving ==
var clientId_secret = configs.get( "conf_ClientId_Secret" ) + "";
var array_clientId_secret = clientId_secret.split("\n");
var clientId = array_clientId_secret[0];
var secret   = array_clientId_secret[1];

var dataIdB = configs.get( "conf_DataIdB" );
var dataIdC = configs.get( "conf_DataIdC" ) + "";
var dataIdD = configs.get( "conf_DataIdD" ) + "";
var dataIdE = configs.get( "conf_DataIdE" ) + "";


//// == ワークフローデータの参照 / Data Retrieving ==
var paypalId         = data.get( dataIdB ) + "";


//// == 演算 / Calculating ==
// Get OAuth Token with Client Credentials
var uri = "https://api.paypal.com/v1/oauth2/token";
var response = httpClient.begin()
  .basic( clientId, secret )
  .formParam( "grant_type", "client_credentials" )
  .post( uri );
var oauthTokenObj = JSON.parse( response.getResponseAsString() );
var oauthToken = oauthTokenObj.access_token;

// Show Invoice Details
var uriDetail = "https://api.paypal.com/v1/invoicing/invoices/" + paypalId;
var responseDetail = httpClient.begin()
  .bearer( oauthToken )
  .get( uriDetail );
var paypalInvoiceObj = JSON.parse( responseDetail.getResponseAsString() );
var paypalInvoiceStatus = paypalInvoiceObj.status;


//// == ワークフローデータへの代入 / Data Updating ==
retVal.put( dataIdC, paypalInvoiceStatus ); // DRAFT, SENT, PAID, etc
if( dataIdD !== "" ){
  if ( paypalInvoiceStatus == "PAID" ){
    retVal.put( dataIdD, paypalInvoiceObj.payments[0].date );
  }
}
if( dataIdE !== "" ){
  if ( paypalInvoiceStatus == "PAID" ){
    var amountValue = parseFloat( paypalInvoiceObj.payments[0].amount.value );
    retVal.put( dataIdE, java.math.BigDecimal( amountValue ) );
  }
}
///retVal.put( "q_accessLog", responseDetail.getResponseAsString() ); // for debug

Download

  • Paypal-status.xml
    • スクリプトエンジンとして「Rhino(廃止予定)」が指定されているため、アプリにインストールしても設定エラーとなります
    • 利用するには、スクリプトエンジンの変更、およびそれに伴うスクリプト修正が必要です
    • 修正版は準備中です

Capture

Notes

  • 事前に Paypal Dashboard にて App を生成し、Client ID/Secret を取得しておく必要があります

See also

Questetra Supportをもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む