お使いのサードパーティのショッピングカートに PayPal チェックアウトを追加


標準の PayPal ショッピングカートではなく、現在使用しているサードパーティのショッピングカートに PayPal 支払い処理をインテグレーションしたいとお考えのウェブ デベロッパーの方もいらっしゃることでしょう。買い手がサードパーティのショッピングカートに商品を入れた後で、チェックアウトの際に PayPal で支払えるようにするには、以下の方法を使用してください。

現在、サードパーティのショッピングカートを PayPal での支払いフローにインテグレーションするには、二種類の方法があります。1つめは、個々の商品ではなくカートの支払い合計金額を受け渡す方法です。2つめは、カート全体の合計金額ではなく特定の商品詳細情報を PayPal に受け渡す方法です。注: 以下に示すような必須変数を PayPal に送信するには、お客さまのウェブサイトにスクリプトを組み込む必要がある場合があります。

方法 1. PayPal へのカート合計金額の転送



ご希望であれば、自分のショッピングカート全体を一括し、その合計金額を PayPal の[今すぐ購入]ボタンコードに渡すことができます(この場合、単一商品の購入であるかのように、カート全体に対する1つの名前と、カートの中身の合計金額を入力する必要があります)。

この方法の問題点は、カートの中の個々の商品を買い手が見られなくなるという点です。さらに、PayPal で用意した変数名も変更できませんし、お客さま独自の変数名も追加できません。

以下の情報を確認した後でさらに技術的な質問がある場合は、当社のサポートエリアをご覧ください。[今すぐ購入]ボタンのコードや以下の変数についての詳細は、ウェブ ペイメント スタンダード インテグレーションガイドをご覧ください。

必要な変数

PayPal ポストのコードには、以下の 4つの隠し変数と1つの画像がフォーム送信時に必要になります。

必要な変数
氏名金額
businessPayPal アカウントのメールアドレス
item_name商品名(またはショッピングカートの名前)
currency_code金額変数(amount、shipping、shipping2、handling、tax)を表示する通貨を定義。選択可能な値は、「USD」「EUR」「GBP」「CAD」「JPY」です。
amount商品の価格(ショッピングカート内の全商品品目の合計金額)
imagePayPal 支払いプロセスを開始するために買い手が押すボタンの画像。src 部分を自分の画像の URL と置き換えることで独自の画像に交換できます。

つまり、PayPal ポストに必要な最小限のコードは次のようになります。

<form action="https://www.paypal.com/jp/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="you@youremail.com">
<input type="hidden" name="item_name" value="Item Name">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="amount" value="0.00">
<input type="image" src="http://www.paypal.com/ja_JP/i/btn/x-click-but01.gif" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
</form>

PayPal は別の変数も用意しているため、フォームポストをカスタマイズできます。利用可能な変数はすべて以下の一覧に記載されています(変数名は小文字でなければなりません)。

利用可能な変数
氏名金額
businessPayPal アカウントのメールアドレス
quantity商品数。1 より大きい場合、金額を乗じます
item_name商品名(またはショッピングカートの名前)。英数字を使用し、127文字以内とします
item_number支払いのトラックに利用できるオプションのパススルー変数。英数字を使用し、127文字以内とします
amount商品の価格(ショッピングカート内の全商品品目の合計金額)
shipping商品の配送費用
shipping2商品を1つ追加した場合の配送費用
handling手数料
tax取引ベースの税額。ここに送信された値は、個人設定での税設定を上書きします(買い手の居住地にかかわらず)。
no_shipping配送先住所。「1」に設定した場合、顧客は配送先住所の入力を求められません。オプションで、省略するか「0」に設定した場合、顧客は配送先住所の入力を求められます
cn備考欄の上に表示されるオプションのラベル(最大40文字)
no_note支払いの備考を記入。「1」に設定した場合、顧客は備考の入力を求められません。オプションで、省略するか「0」に設定した場合、顧客は備考の入力を求められます。
on0第1のオプションフィールド名。64文字以内
os0第1のオプション値の設定。200文字以内。「on0」を定義しないと、「os0」が認識されません。
on1第2のオプションフィールド名。64文字以内
os1第2のオプション値の設定。200文字以内。「on1」を定義しないと、「os1」が認識されません。
custom顧客には提示されることのない、オプションのパススルー変数。在庫のトラッキングに使用可能
invoice顧客には提示されることのない、オプションのパススルー変数。請求書番号のトラッキングに使用可能
notify_url常に IPN とともに使用。IPN フォームポストが送信されるインターネットURL
return顧客が支払い完了後に戻るインターネット URL
cancel_return顧客が支払いキャンセル後に戻るインターネット URL
image_urlロゴとして利用する150X50ピクセルの画像のインターネットURL
cs支払いページの背景色を設定。「1」に設定した場合、背景色は黒です。オプションで、省略するか「0」に設定した場合、背景色は白になります

拡張変数

PayPal では、以下の「cmd」入力を変更した場合、拡張変数のポストが可能になります。

<input type="hidden" name="cmd" value="_xclick">

次のように変更:

<input type="hidden" name="cmd" value="_ext-enter">
<input type="hidden" name="redirect_cmd" value="_xclick">

上記のような「cmd」入力への変更により、以下の変数も使えるようになります。

拡張変数
氏名金額
email顧客のメールアドレス
first_name顧客の名。英数字を使用し、32文字以内とします
last_name顧客の姓。英数字を使用し、64文字以内とします
address1顧客の住所の1 行目。英数字を使用し、100文字以内とします
address2顧客の住所の2 行目。英数字を使用し、100文字以内とします
city顧客の住所の市。英数字を使用し、100文字以内とします
state顧客の住所の州。公式な 2 文字の略語でなければなりません
zip顧客の住所の郵便番号
night_phone_a顧客の夜間電話番号の地域コード
night_phone_b顧客の夜間電話番号の最初の3 桁
day_phone_a顧客の昼間電話番号の地域コード
day_phone_b顧客の昼間電話番号の最初の3 桁

注: 個人設定で設定したデフォルトの配送手数料と異なる金額を指定するには、個人設定から「配送料の計算」を編集し、「取引ごとに配送料の変更を許可」のチェックボックスをクリックしてください。

方法 2. PayPal への個別商品の転送



お使いのサードパーティのショッピングカートで、個々の商品情報を PayPal に送信するように設定できる場合、その商品情報は買い手と売り手の取引履歴ログと通知に記入されます。商品情報を記入するには、新しいバージョンの PayPal ショッピングカートフローに HTML フォーム要素をポストします。これは、セクション#1「PayPal にショッピングカート合計金額を提供」で説明した処理と似ています。ただし以下の例外があります。

  1. 「cmd」変数を「_cart」に設定
    以下の HTML 行を次のように書き換えます。

    <input type="hidden" name="cmd" value="_xclick">

    これを以下のように書き換えます。

    <input type="hidden" name="cmd" value="_cart">

  2. 「upload」という新しい変数を追加

    次の行を <form> タグと </form> タグの間に追加します。

    <input type="hidden" name="upload" value="1">

  3. 商品詳細の定義
    以下の商品固有のパラメータに対し、サードパーティのカートを使用して購入した各商品に対応する新しい値を定義します。変数名に「_x」を追加します。x は商品番号で、1から始まって商品が1 個追加されるごとに1 増加します。

    氏名金額
    item_name_x(商品番号xに必須)カートにある商品番号xの名前。英数字を使用し、127文字以内とします
    item_number_xカートにある商品番号 x に関連するオプションのパススルー変数。英数字を使用し、127文字以内とします
    amount_x(商品番号 x に必須)商品番号 x の価格。
    shipping_x商品番号 x の最初の 1 件(数量が 1)の配送料
    shipping2_x商品番号 x の追加1 件あたり(数量が 2 以上)の配送料
    handling_x商品番号 x の手数料
    on0_x商品番号xの第1のオプションフィールド名。64文字以内
    os0_x商品番号xの第1のオプション値の設定。200文字以内。「on0_x」を定義しない、と「os0_x」が認識されません。
    on1_x商品番号xの第2のオプションフィールド名。64文字以内
    os1_x商品番号xの第2のオプション値の設定。200文字以内。「on1_x」を定義しないと、「os1_x」が認識されません。

  4. カートに含まれる商品ごとに繰り返す
    買い手のカート内の各商品に対して、上記の表から必須の変数とオプションの変数を追加してください。カート内の最初の商品には「_1」で終わるパラメータを指定してください。たとえば「item_name_1」「amount_1」です。同様に、2番目の商品は、「item_name_2」、「amount_2」などの変数で定義します。注:「_x」の値は正しく認識されるよう、1ずつ値を増加させる必要があります。商品#2 を定義せず、商品#1 から商品#3 にスキップした場合、3 番目の商品は無視されます。

    通貨の指定方法:金額に関するすべての変数(amount、shipping、shipping2、handling、tax)は、支払い時にポストされる「currency_code」変数によって指定される通貨で解釈されます。これは商品固有ではないため、変数名に「_x」を付ける必要はありません。「currency_code」変数がポストされない場合、PayPal ではすべての金額の値を米ドルとして解釈します。
上記の情報を確認した後、さらに技術的な質問がある場合は、当社のサポートエリアをご覧ください。ショッピングカートのコードや以下の変数についての詳細は、ウェブ ペイメント スタンダード インテグレーションガイドをご覧ください。