支払いページの社名をサービス名に変更したときの覚書。
支払いページの社名を変更する方法のひとつとしてlogo画像に置き換えるという手段がある。
[ツール]-[ビジネス設定]-(買い手の手続きを)[カスタマイズする]-会社のロゴの追加の[作成]から、logo画像を指定したページスタイルをメインにするだけ。
しかしこの方法だと、スマホから見た場合にlogo画像は表示されず、以前の社名のまま。スマホにはlogo画像は表示しない仕様ということかな。
他の方法を探してみると、SetExpressCheckout API のパラメーターに情報を追加することで可能らしい。
関連パラメーター
-----------------------------------------------
//logo画像を指定
$nvpstr = $nvpstr . "&LOGOIMG=" . urlencode('http://example.com/paypal_logo_img.gif');
//header画像を指定
$nvpstr = $nvpstr . "&HDRIMG=" . urlencode('http://example.com/header_img.gif');
//ページスタイルを指定
//上の二つはページスタイルを指定して変更される点と同じ。だからページスタイルが設定してあればこの一行でもいいし、設定画面でメインスタイルに指定していればなくてもいい。
//$nvpstr = $nvpstr . "&PAGESTYLE=mystyle";
//これがスマホ支払いページの社名を書き換えるパラメーター
$nvpstr = $nvpstr . "&BRANDNAME=サービス名";
-----------------------------------------------
青文字の部分は環境に合わせる
パラメーターを追記する場所は、paypalfunctions.php 内にある。
paypalfunctions.php の中を抜粋
-----------------------------------------------
function CallShortcutExpressCheckout( $paymentAmount, $currencyCodeType, $paymentType, $returnURL, $cancelURL)
{
//------------------------------------------------------------------------------------------------------------------------------------
// Construct the parameter string that describes the SetExpressCheckout API call in the shortcut implementation
$nvpstr="&PAYMENTREQUEST_0_AMT=". $paymentAmount;
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_PAYMENTACTION=" . $paymentType;
$nvpstr = $nvpstr . "&RETURNURL=" . $returnURL;
$nvpstr = $nvpstr . "&CANCELURL=" . $cancelURL;
$nvpstr = $nvpstr . "&PAYMENTREQUEST_0_CURRENCYCODE=" . $currencyCodeType;
//ここら辺に追記すれば SetExpressCheckout API にパラメーターが渡る。
-----------------------------------------------
SetExpressCheckout API で使用できるパラメーター(公式)
パラーメータについて全部でないけど日本語でまとめてあるページ
カテゴリー:paypal
sandbox環境では問題ないのに本番環境だとエラーが出る。
エラー内容
--------------------------------------------
SetExpressCheckout API call failed. Detailed Error Message: Security header is not validShort Error Message: Security errorError Code: 10002Error Severity Code: Error
--------------------------------------------
APIの認証がうまくいっていないらしい。
対処法
paypalfunctions.phpを開いてSandboxFlag を false に書き換える。
書き換え内容
--------------------------------------------
//$SandboxFlag = true; //sandbox用
$SandboxFlag = false; //本番用
--------------------------------------------
カテゴリー:paypal
paypal での支払い実装方法いろいろ
1.定期購読
定期購読するだけならボタンを作成のみでok。sandbox でも可。
ボタン作成の過程はこちらが分かりやすい。
2.API でエクスプレスチェックアウト
PayPal Integration Wizardから順番に行えばいい。修正すべき点もあるが、こちらを参考にした。
ためしにやるなら参考ページと同じファイル名にすること。ファイル名変えて少しはまった。
IPN についても上記ページを参考に実装できる。
カテゴリー:paypal
paypalでテスト環境を作るには、sandboxと呼ばれる開発用テストツールを利用する
sandboxとは
--------------------------------------
サンドボックスとは、保護された領域内でプログラムを動作させることで、その外へ悪影響が及ぶのを防止するセキュリティモデル。「子供を砂場(サンドボックス)の外で遊ばせない」という言葉が語源だと言われている。
--------------------------------------
引用元 e-Words
1.ビジネスアカウントで Developer ページにログインして、Dashborard(2016年4月現在、画面下部)の Sandbox accounts からテスト用アカウントを作る。
テスト用アカウントの造り方はこちら(公式)
このとき作るアカウントはテスト用のビジネスアカウント(売り手)とテスト用のパーソナルアカウント(買い手)それぞれひとつずつ。計ふたつ。
ここで登録するメールアドレスは存在しないものでいいし、金額(持ち金)も適当に多く設定しておけばいい。あくまでシミュレーションなので実際にお金が動くわけでない。
2.sandboxのトップページからビジネスアカウントでログインして、本番と同じようにページに paypal を仕込んで、パーソナルアカウントで買い物をする。
ログインするアドレスはこちら https://www.sandbox.paypal.com/jp/
sandbox(テスト環境)のトップページからログインする。テストアカウントで通常のログインできないので注意!
カテゴリー:paypal
javascript の記述
---------------------------------------
//touchmove の縦スクロールを禁止
document.body.addEventListener( 'touchmove', function(e){
e.preventDefault();
});
---------------------------------------
jQuery の場合
---------------------------------------
// スクロール禁止
$(window).on('touchmove.noScroll', function(e) {
e.preventDefault();
});
// スクロール禁止 解除
$(window).off('.noScroll');
---------------------------------------
※.noScroll は解除するためにつけた名前
参考ページ
http://qiita.com/kokushin/items/ef96194bd0fa7c145d7b
カテゴリー:javascript, JQUERY
PHPの配列をjavascriptに渡す場合は、いったんjson形式に変換するといい。
スクリプト例 ここから
--------------------------------------------------------
<?php
$hairetu = array('りんご', 'もも', 'なし');
//配列をJavaScriptに渡すために一度jsonに変換
$jsonTest=json_encode($hairetu);
?>
<html>
<head>
<title>タイトル</title>
</head>
<body>
<script type="text/javascript">
//JSON.parseを使って配列を受け取る
var test=JSON.parse('<?php echo $jsonTest; ?>');
for (var i = 0; i < test.length; i++) {
alert(test[i]);
}
</script>
</body>
</html>
--------------------------------------------------------
ここまで
参考サイト
http://future-software-labo.anyagent.net/php%E3%81%8B%E3%82%89javascript%E3%81%AB%E9%85%8D%E5%88%97%E3%82%92%E6%B8%A1%E3%81%99/
javascriptファイルが外部ファイルの場合
PHPファイル
--------------------------------------------------------
//カスタムデータ属性にjson形式の配列をセット
<script id="script" src="js/script.js" data-json-test ='<?php echo json_encode($hairetu)?>'></script>
--------------------------------------------------------
javascriptファイル
script.js(外部ファイル)
--------------------------------------------------------
//jQueryを利用してカスタムデータ属性にアクセス
var $script = $('#script');
var test = JSON.parse($script.attr('data-json-test'));
--------------------------------------------------------
参考サイト
http://qiita.com/cither/items/b98cc4e237dcc8f7e51f
http://dresscording.com/blog/html5/custom_data_attribute.html
カテゴリー:javascript, PHP
<??php
// ディレクトリのパスを記述
$dir = "dragon_ball1";
// ディレクトリの存在を確認し、ハンドルを取得
if(is_dir($dir) && $handle = opendir($dir)) {
// ループ処理
while(($file = readdir($handle)) !== false) {
//$path = $dir . $file;
// ファイルのみ取得
if(filetype($dir . "/" . $file) == "file") {
/********************
各ファイルへの処理
$file ファイル名
$path ファイルのパス
********************/
// ファイル名を出力する
echo $file . "
";
}
}
} else {
echo "ディレクトリがない";
}
?>
参考サイト(このサイトのをほぼそのままコピーした)
http://webkaru.net/php/function-filetype/
カテゴリー:PHP
iOS の safari において touchend で取得した座標を alert で表示するとうまく座標を表示できない事象が発生。
原因不明でバグのような気がするが、次のように対処できる。
------------------------------
alert('座標:' + touchX);
------------------------------
↓↓↓
------------------------------
setTimeout(function(){ alert('座標:' + touchX); }, 0);
------------------------------
参考ページ:
http://gomojp.blog77.fc2.com/blog-entry-144.html
カテゴリー:javascript
php-mecab を使用してるページがエラーしか表示されなくなった。
表示されたエラー
---------------------------------------------------
Fatal error: Class 'Mecab' not found in /home/username/www/xxxx.html on line 20
---------------------------------------------------
推測だが、さくらインターネットの PHP のバージョンが勝手に変更されたのが原因だと思う。phpinfo で mecab が表示されない。つまり、php-mecab が認識されていない。
解決用法、mecab および php-mecab を入れ直した。
入れ直し時に注意すること。
・mecab と php-mecab の古いファイルは念のため削除しておく。上書きされるかと思ったがうまくいかなかった。(これがうまくいかない原因だったかは不明)
・php-mecab のインストール時に php のバージョンを指定する箇所があるので新しいバージョンに合わせる。
・さくらにデフォルトインストールの mecab に問題があった場合解決が難しいので、自前の mecab を local 領域にいれて使用したほうが解決しやすい。(今回、デフォルト → 自前 に変更した)
カテゴリー:mecab, PHP, さくらインターネット
KAGOYA のデータベースプラン(SSD 共有)の DB サーバーにアクセスする方法、覚書。
1.kagoya のサーバーコントロールにログインして、データベースをつくる。そのデータベースのアクセス許可にアクセス元の IPアドレス を登録する。自分の場合はさくら共有サーバーのIPアドレス。
2.ターミナルからさくらサーバーにアクセス。さくらサーバーからさくらの DB にアクセスするように kagoya の DB にアクセスする。
コマンド(さくらサーバーにログイン後)
----------------------------------------------------
% mysql -h mysql*****.kagoya.net -u ユーザーID -p --default-character-set=utf8
----------------------------------------------------
以後、さくらの DB を使っているのと同じように kagoya の DB を使用できる。
カテゴリー:mysql, さくらインターネット