1

opencart 1.5.5.1 とペイパル標準に問題があります。私は Paypal.com.au を使用しています (オーストラリアで) 私が始めたときは、電話がなく、opencart から Paypal に状態が渡されていませんでした。残りのフィールド (住所、電子メール、名前) はすべて事前入力されています。だから私はpaypay標準コードに入り、これをコントローラーに追加しました:

$this->data['night_phone_b'] = html_entity_decode($order_info['telephone'], ENT_QUOTES, 'UTF-8');

そしてこれをtplファイルに:

<input type="hidden" name="night_phone_b" value="<?php echo $night_phone_b; ?>" />

それは電話ではうまくいきましたが、州で何をしようとしてもうまくいきません。私はこのようなことをしているのを見ました:

$this->data['state'] = html_entity_decode($order_info['payment_zone_code'], ENT_QUOTES, 'UTF-8');

上記と同じですが['payment_zone_code']['payment_zone_id']andに置き換えます['zone_id']

そしてtplファイルで:

<input type="hidden" name="state" value="<?php echo $state; ?>" />

とにかく、州をペイパルに引き継ぐことに困惑しています。

編集ペイパルのオーストラリアのサイトでここをチェック: https://www.paypal.com/au/cgi-bin/webscr?cmd=_pdn_xclick_prepopulate_outside 彼らもこの問題について何の助けも提供していません。すべての例は米国の州のものです: (2 文字の正式な略語でなければなりません)" と 3 文字の略語についてのヘルプはありません。彼らからの返信もまだ待っています

4

2 に答える 2

1

フルネームでオーストラリアの州を渡すことができるようです (表示されるコンテンツではなく、Paypal の購入者の詳細選択フォームの値)。

これは少し危険な修正のように感じますが、私にとってはうまくいきました。Paypalが何も変わらないことを願っています...

    $states['ACT'] = "Australian Capital Territory";
$states['NSW'] = "New South Wales";
$states['NT'] = "Northern Territory";
$states['QLD'] = "Queensland";
$states['SA'] = "South Australia";
$states['TAS'] = "Tasmania";
$states['VIC'] = "Victoria";
$states['WA'] = "Western Australia";

次に、フォームの一部として状態の代わりに「billing_region」を渡します...

'billing_region' => $state[$fdata['u_state']]
于 2013-09-05T04:36:58.533 に答える
0

iso_code_2具体的な国の財産を使うのはどうですか?countryテーブルは次のように定義されます。

CREATE TABLE `oc_country` (
  `country_id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(128) NOT NULL,
  `iso_code_2` varchar(2) NOT NULL,
  `iso_code_3` varchar(3) NOT NULL,
  `address_format` text NOT NULL,
  `postcode_required` tinyint(1) NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT '1',
  PRIMARY KEY (`country_id`)
)

この列iso_code_2には、目的の 2 文字の ISO 国コードが含まれています。

あなたの場合、PayPalリクエストを処理するとき、支払いアドレスと国コード(3文字のISOコード)またはIDを取得できるはずです-この一意の値(またはのいずれかiso_code_3)を使用country_idして、具体的な国エントリを見つけることができるはずです希望iso_code_2する値を取得し、それを PayPal に渡します。

編集:

州コードの場合は、既知の支払い先住所を使用して取得できますzone_id。ただし、1 つの問題があります。オーストラリアの州のコードは 2 文字だけではありません。

Australian Capital Territory -> ACT
New South Wales              -> NSW
Northern Territory           -> NT
Queensland                   -> QLD
South Australia              -> SA
Tasmania                     -> TAS
Victoria                     -> VIC
Western Australia            -> WA

ウィキペディアによると、州の略語も ISO コードも 2 文字しかないため、3 文字のコードも送信して、残りを PayPal に任せることができます (説明が間違っているだけで、3 文字を使用できる可能性があります)。 -文字コード)。

于 2013-05-30T14:59:00.360 に答える