PHPを使用してAlipayの即時支払いを行う場合の注意点

WBOY
リリース: 2016-06-23 13:43:14
オリジナル
1033 人が閲覧しました

注意: 1. 他の人のパラメータルールに従ってパラメータリストを入力します; 2. 販売者情報を正しく入力します; 3. 送信後、この時点で当社のサーバーに別れを告げることに注意してください。サーバー上の情報を Alipay サーバーに送信し、Alipay サーバーで支払いが完了すると、@@@@@@ が表示されます。これは単なる始まりです。 Alipay からの非同期コールバックと同期通知リンクがあります。同期は通常、支払いが成功したこと、つまり自分のお金が他の人に渡されたことをユーザーに知らせます。このとき、ユーザーはそれが渡されたかどうかを気にします。これは非同期操作であるため、特に注意してください。まず、Alipay 自体が注文のセキュリティ検証を実行します --- 署名検証を含む: // 通知検証結果を計算します
$alipayNotify = new AlipayNotify($alipay_config);
$verify_result = $alipayNotify->verifyNotify();


この $verify_result は、成功した署名検証の戻り結果です。特定の検証リンクは、$alipayNotify->verifyNotify(); によって呼び出される関数内にあります。 function getSignVeryfy($para_temp, $sign) {

unset($para_temp['_URL_']);

//署名対象のパラメータ配列内の null 値と署名パラメータを削除します

$para_filter = paraFilter($para_temp );

//署名されるパラメータの配列を並べ替えます
$para_sort = argSort($para_filter);

//「parameter =」のパターンに従って、「&」文字を使用して配列のすべての要素を文字列に連結しますパラメータ値"
$ prestr = createLinkstring($para_sort);

$isSgin = false;
switch (strtoupper(trim($this->alipay_config['sign_type']))) {
case "MD5" :
$ isSgin = md5Verify($ prestr, $sign, trim($this->alipay_config['key']));
Break;
デフォルト :
$isSgin = false;
}

return $isSgin;
}


この署名検証$ para_temp は、thinkPHP の URL が pathinfo モードで返されるパラメータのリストです。 &Normal パラメータ文字列。パラメータとして _URL_ をパラメータ文字列に追加した理由がわかりません。結果は



/**
*返されたときに署名検証結果を取得する*/
function md5Verify($prestr, $sign, $key) です。 {
$prestr = $prestr . $key;

$mysgin = md5($prestr);

return $mysgin;

if($mysgin == $sign) { //mysgin と他の人から返された署名が矛盾しているため、 、、絶句! ! pathinfo が原因だとは思いもしませんでした。unset($para_temp['_URL_']); を使用してこのパラメータを削除したところ、問題は解決しました。

return true;
}
else {
return false;
}
}





この質問はさようなら、次の質問です、、、2 つ目の質問です。 ! !そうですね、現在のサーバーが私なのか Alipay なのかわかりませんでしたが、非同期コールバックを操作して注文支払いの注文情報をデータベースに追加しましたが、現在のユーザー セッションに保存された uid を取得しました。 ! !私は今 Alipay サーバー上にいますが、あなたのセッションは私たちのサーバー上に存在しています。それで終わりです。 !彼があなたにそれを渡すように、あなたの uid を渡したいのですが、自分で方法を考えてください







この問題にはさようなら、そしてまた別の問題がやって来ます、私は 22 歳です、依存はしませんコールバック関数の要件に応じて、注文の操作が完了したときなどに成功を他の人に出力します。以前に返される成功は、注文を操作したかどうかを Alipay に通知する必要があることに注意してください。完了の兆候ではありません。Alipay サーバーが成功を受け取った場合、コールバックでのパラメータの受け渡しを停止します。返された情報が成功であることが見つからない場合は、この時点で Alipay の子はコールバック メソッドの呼び出しを続けます。

、、、この時点で、ユーザーは 10 セントを入金することになりますが、その後、Alipay はコールバック メソッドをコールバックし続け、注文フォームが常に変更されることになります。 . 無言の床! ! !皆さん、注目してください! ! !


http://help.alipay.com/support/help_detail.htm?help_id=397375&keyword=%B6%E0%B4%CE%D2%EC%B2%BD%BB%D8%B5%F7


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート