WeChat H 5支払:ネットワーク環境がセキュリティ検証に失敗しました.後で再試行してください.


この問題の原因は、マイクロ信号インタフェースから入力されたパラメータspbillを呼び出すことです.create_ipと実際の支払い時に取得した不一致
公式文書では原因のみが示されているが,実際に操作できる方法は与えられていない.https://pay.weixin.qq.com/wiki/doc/api/H5.php?chapter=15_4
まず、この行を注記します[Wxpay/lib/WxPay.Api.php]
//$inputObj->SetSpbill_create_ip($_SERVER['REMOTE_ADDR']);//  ip

次に、ビジネスコードに関数get_を追加します.client_ip();
/**
 *      IP  
 * @return string
 */
function get_client_ip() {
    if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
        $ip = getenv('HTTP_CLIENT_IP');
    } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
        $ip = getenv('HTTP_X_FORWARDED_FOR');
    } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
        $ip = getenv('REMOTE_ADDR');
    } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
        $ip = $_SERVER['REMOTE_ADDR'];
    } else {
        $ip = '0.0.0.0';
    }
    return preg_match('/[\d\.]{7,15}/', $ip, $matches) ? $matches[0] : '';
}

最後に端末IPを取得し、微信SDKの統一注文を呼び出す
//...
$spbill_create_ip = get_client_ip();

$input = new WxPayUnifiedOrder();
//...
$input->SetSpbill_create_ip($spbill_create_ip);
//         
$result = WxPayApi::unifiedOrder($input);
まだ解決していない場合は、関連ログを印刷したり、エラーメッセージを表示したり、コメントを残したりしてください.