Задать вопрос
  • Ккак сделать url кодирование сигнатуры в Робокасса?

    thecool123
    @thecool123
    Программист на PHP
    Если кому-то интересно, сам столкнулся с такой проблемой, как делал оплату для сайта https://vsedizaineri.com - там тоже на PHP была админка и проблема была с передачей параметра Receipt.

    В итоге проблема решилась вот как. Параметр в эту сигнатуру передается без rawurlencode, а вот уже для формирования ссылки - там уже с rawurlencode.

    Грубо говоря, если по аналогии с кодом выше, получится так:

    $receipt_array= Array(
        "sno" => "usn_income",
        "items" => Array(
            Array(
                "name" => "Услуга",
                "quantity" => "1",
                "sum" => $out_summ,
                "payment_method" => "full_payment",
                "payment_object" => "payment",
                "tax" => "none"
            )
        )
    );
    
    $receipt = json_encode($receipt_array);
    $receipt_url = rawurlencode(json_encode($receipt_array));
    
    $crc  = md5("$mrh_login:$out_summ:$inv_id:$receipt:$mrh_pass1:Shp_item=$shp_item");
    
    print "<html><script language=JavaScript ".
          "src='https://auth.robokassa.ru/Merchant/PaymentForm/FormV.js?".
          "MerchantLogin=$mrh_login&OutSum=$out_summ&invoiceID=$inv_id&Shp_item=$shp_item&Receipt=$receipt_url".
          "&Description=$inv_desc&SignatureValue=$crc'></script></html>";
    Ответ написан
    1 комментарий