PayPalにおける銀行口座への資金移動の理由
PayPalにおける銀行口座への資金移動の理由を調べてみました。
PayPalから資金移動依頼のメール(下記抜粋)が届きました。
PayPalは、世界各地で事業を展開しているすべての場所で、現地の法律および規制を遵守するよう努めています。日本の決済サービス法の改正により導入された新しい要件に基づき、弊社は日本でのサービスについて、いくつかの新しい措置を導入しました。
PayPal Japanでは、使用する予定のない資金をお客さまのPayPalアカウント残高に保持されないよう求めています。これは、原則として、お客さまが今月中に使用する予定のある残高のみを保持する必要があることを意味します。
(中略)
PayPal残高が100万円を超える場合は、毎月通知をお送りします。次の通知は2月上旬に送信されます。
資金を移動する理由がよくわからないので、2021年5月1日にリリースされたPayPalの記事を読み返してみました。
が、ここでも資金を移動する理由がよくわかりません。
ただ、資金決済法の改正が影響していることはわかりました。
さらにネットで調べたところ、こちらの記事で理由がわかりました。
「PayPayマネー」の残高上限が500万円から100万円に“減額” 6月1日以降
要約すると、下記の通りです。
まず、資金決済法改正で、資金移動業者が「第一種」「第二種」「第三種」に細分化されます。
- 第一種:認可制、取引金額に上限なし
- 第二種:登録制、取引金額は100万円まで
- 第三種:登録性、取引金額は5万円まで
さきほどの「資金決済法改正にあたってのご案内」で、PayPalのユーザー(プレミアアカウント及びビジネスアカウント)は第二種としたため、上限を100万円にせざるを得なかったものと思われます。
ちなみに、資金移動業者が第一種資金移動業者になるには、認可を取得する必要があります。
また、第一種資金移動業者には下記の滞留規制が課されます。
- 送金先や送金日時の指示がない資金の受け入れの禁止
- 資金処理に必要な期間を超える資金の滞留の禁止
上記の「『PayPayマネー』の残高上限が500万円から100万円に“減額” 6月1日以降」では、100万円を超える残高を持つユーザーは、改正法令の規定により、サービスの利便性を享受しきれなくなってしまう、と書かれており、PayPalは上記ユーザーについて利便性を重視して、第二種とする判断をされたものと思われます。
コンテンツデータでMTEntriesWithSubCategoriesの代替テンプレートタグ
コンテンツデータでMTEntriesWithSubCategoriesの代替テンプレートタグを紹介します。
1.問題点
コンテンツデータでMTEntriesWithSubCategoriesと同等のタグ(MTContentsWithSubCategories)はありません。
ということで、コンテンツデータでMTEntriesWithSubCategoriesの代替テンプレートタグを紹介します。
2.前提条件
- コンテンツタイプ名:products
- コンテンツタイプに設定しているコンテンツフィールドのカテゴリセット名:field_category
- カテゴリセット名:category
- カテゴリセットの構造:下記(2階層まで)
cat1
cat1-1
cat1-2
cat1-3
3.代替テンプレートタグ(親カテゴリが1つの場合)
赤字の部分は自由に書き換えてください。
<mt:CategorySets name="category">
<mt:TopLevelCategories>
<mt:HasParentCategory>
<mt:setvarblock name="all"><mt:var name="all"> OR <mt:var name="top">/<mt:CategoryLabel></mt:setvarblock>
</mt:HasParentCategory>
<mt:HasNoParentCategory>
<mt:CategoryLabel setvar="top">
<mt:setvarblock name="all"><mt:var name="top"></mt:setvarblock>
</mt:HasNoParentCategory>
<mt:SubCatsRecurse>
</mt:TopLevelCategories>
</mt:CategorySets>
<mt:Contents content_type="products" field:field_category="$all">
<mt:ContentLabel><br />
</mt:Contents>
4.3の解説
テンプレートタグの前半で次のようなカテゴリ名の一覧を取得します。
cat1 OR cat1/cat1-1 OR cat1/cat1-2 OR cat1/cat1-3
この文字列を、後半のmt:Contentsタグの"field:field_category"オプションの値に設定します。
5.代替テンプレートタグ(親カテゴリが2つの場合)
赤字の部分は自由に書き換えてください。
<mt:setvar name="counter" value="0">
<mt:CategorySets name="category">
<mt:TopLevelCategories>
<mt:HasParentCategory>
<mt:setvarblock name="all[$counter]"><mt:var name="all[$counter]"> OR <mt:var name="top">/<mt:CategoryLabel></mt:setvarblock>
</mt:HasParentCategory>
<mt:HasNoParentCategory>
<mt:setvar name="counter" op="++">
<mt:CategoryLabel setvar="top">
<mt:setvarblock name="all[$counter]"><mt:var name="top"></mt:setvarblock>
</mt:HasNoParentCategory>
<mt:SubCatsRecurse>
</mt:TopLevelCategories>
</mt:CategorySets>
<mt:setvarblock name="filter"><mt:Var name="all" index="1"> OR <mt:Var name="all" index="2"></mt:setvarblock>
<mt:Contents content_type="products" field:field_category="$filter">
<mt:ContentField content_field="BookTitle"><mt:ContentFieldValue></mt:ContentField>
</mt:Contents>
6.5の解説
CategorySetsタグの中で、次のようなカテゴリ名の一覧を、親カテゴリ単位に配列の変数に取得します。
cat1 OR cat1/cat1-1 OR cat1/cat1-2 OR cat1/cat1-3
取得した配列変数をORで連結して、さきほどと同様、後半のmt:Contentsタグの"field:field_category"オプションの値に設定します。
親カテゴリが3つ以上の場合は、
<mt:setvarblock name="filter"><mt:Var name="all" index="1"> OR <mt:Var name="all" index="2"></mt:setvarblock>
の部分について、赤字で示す、
<mt:setvarblock name="filter"><mt:Var name="all" index="1"> OR <mt:Var name="all" index="2"> OR <mt:Var name="all" index="3"></mt:setvarblock>
のように増やしてください(もうちょっとエレガントな方法はあると思いますが)。
XML::Simpleのインストールでエラーになる場合の対処
PerlのXML::Simpleのインストールでエラーになる場合の対処方法を紹介します。
モジュールはyum等ではなく、makeでインストールしています。
1.問題点
XML::Simpleをインストールしましたが、エラーになります。
下記のスクリプトを実行します。
#!/usr/bin/perl
use XML::Simple;
$file = './test.xml';
my $data = XMLin($file);
実行結果
# ./test.pl
XMLin() requires either XML::SAX or XML::Parser at ./test.pl line 6
XML::Simple called at ./test.pl line 6
ということで、PerlのXML::Simpleのインストールでエラーになる場合の対処方法を紹介します。
2.対処
エラーの内容より、XML::SAXまたはXML::Parserが必要みたいなのでインストールします。
なおXML::Parserはexpat-develのインストールが必要なようです。ここではXML::SAXをインストールします。
https://metacpan.org/pod/XML::Parser
からtar.gzファイルをダウンロードして展開し、
# perl Makefile.PL
でMakefileを生成します。
# make
cp lib/XML/SAX/PurePerl/EncodingDetect.pm blib/lib/XML/SAX/PurePerl/EncodingDetect.pm
cp lib/XML/SAX/PurePerl/Reader/UnicodeExt.pm blib/lib/XML/SAX/PurePerl/Reader/UnicodeExt.pm
cp lib/XML/SAX/PurePerl/Reader/Stream.pm blib/lib/XML/SAX/PurePerl/Reader/Stream.pm
:
Manifying blib/man3/XML::SAX::PurePerl.3pm
Manifying blib/man3/XML::SAX::DocumentLocator.3pm
# make install
Installing /usr/local/share/perl5/XML/SAX.pm
Installing /usr/local/share/perl5/XML/SAX/Intro.pod
Installing /usr/local/share/perl5/XML/SAX/ParserFactory.pm
:
Can't locate XML/SAX/Exception.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/share/perl5/XML/SAX/ParserFactory.pm line 12.
BEGIN failed--compilation aborted at /usr/local/share/perl5/XML/SAX/ParserFactory.pm line 12.
Compilation failed in require at /usr/local/share/perl5/XML/SAX.pm line 18.
BEGIN failed--compilation aborted at /usr/local/share/perl5/XML/SAX.pm line 18.
Compilation failed in require.
BEGIN failed--compilation aborted.
make: *** [install_sax_pureperl] エラー 2
エラーが発生したので、さらにXML/SAX/Exception.pm(XML-SAX-Base-1.09)をインストールします。
https://metacpan.org/pod/XML::SAX::Exception
からtar.gzファイルをダウンロードして展開し、
# perl Makefile.PL
でMakefileを生成します。
# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for XML::SAX::Base
# make
cp BuildSAXBase.pl blib/lib/XML/SAX/BuildSAXBase.pl
cp lib/XML/SAX/Base.pm blib/lib/XML/SAX/Base.pm
cp lib/XML/SAX/Exception.pm blib/lib/XML/SAX/Exception.pm
Manifying blib/man3/XML::SAX::Base.3pm
Manifying blib/man3/XML::SAX::BuildSAXBase.3pm
Manifying blib/man3/XML::SAX::Exception.3pm
# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00basic.t ............. ok
t/01exception.t ......... ok
t/01simpledriver.t ...... ok
:
t/16gethandlers.t ....... ok
t/release-pod-syntax.t .. skipped: these tests are for release candidate testing
All tests successful.
Files=19, Tests=137, 1 wallclock secs ( 0.09 usr 0.03 sys + 0.50 cusr 0.09 csys = 0.71 CPU)
Result: PASS
# make install
Installing /usr/local/share/perl5/XML/SAX/Exception.pm
Installing /usr/local/share/perl5/XML/SAX/Base.pm
Installing /usr/local/share/perl5/XML/SAX/BuildSAXBase.pl
Installing /usr/local/share/man/man3/XML::SAX::BuildSAXBase.3pm
Installing /usr/local/share/man/man3/XML::SAX::Base.3pm
Installing /usr/local/share/man/man3/XML::SAX::Exception.3pm
Appending installation info to /usr/lib64/perl5/perllocal.pod
XML-SAX-Baseインストール後に再度XML-SAXのmake testを実施します。
# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00basic.t ....... Can't locate XML/NamespaceSupport.pm in @INC (@INC contains: /root/hoge/XML-SAX-1.02/blib/lib /root/hoge/XML-SAX-1.02/blib/arch /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /root/hoge/XML-SAX-1.02/blib/lib/XML/SAX/PurePerl.pm line 20.
エラーが発生したので、さらにXML/NamespaceSupport.pmをインストールします。
https://metacpan.org/pod/XML::NamespaceSupport
からtar.gzファイルをダウンロードして展開し、
# perl Makefile.PL
でMakefileを生成します。
# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for XML::NamespaceSupport
# make
cp lib/XML/NamespaceSupport.pm blib/lib/XML/NamespaceSupport.pm
Manifying blib/man3/XML::NamespaceSupport.3pm
# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00base.t .. ok
All tests successful.
Files=1, Tests=49, 0 wallclock secs ( 0.03 usr 0.01 sys + 0.02 cusr 0.00 csys = 0.06 CPU)
Result: PASS
# make install
Installing /usr/local/share/perl5/XML/NamespaceSupport.pm
Installing /usr/local/share/man/man3/XML::NamespaceSupport.3pm
Appending installation info to /usr/lib64/perl5/perllocal.pod
XML-NamespaceSupportインストール後に再度XML-SAXのmake testを実施します。
# make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/00basic.t ....... ok
t/01known.t ....... ok
t/10xmldecl1.t .... ok
:
t/42entities.t .... ok
t/99cleanup.t ..... ok
All tests successful.
Files=16, Tests=113, 2 wallclock secs ( 0.08 usr 0.03 sys + 1.60 cusr 0.18 csys = 1.89 CPU)
Result: PASS
# make install
Appending installation info to /usr/lib64/perl5/perllocal.pod
could not find ParserDetails.ini in /usr/local/share/perl5/XML/SAX
これでインストールでき、冒頭のスクリプトも正常に動作しました。