2014-03-05 57 views
1

我試圖使用codeigniter和pesapal測試我的付款模塊,但我不斷收到此錯誤「問題:parameter_rejected | Advice:invalid_value_for_amount> oauth_parameters_rejected | Ksh.4%2C999」。如何使用Codeigniter和Pesapal解決無效的參數錯誤

其中Ksh。 4%2C999是賬單ksh。 4999.我使用了正確的Pesapal鍵,所以我不知道什麼是錯誤的。

+0

沒有代碼=沒有幫助,這就是如何工作 – Kalzem

+0

我添加了這行$ amount = number_format((double)$ amount,2); 但我現在仍然得到這個錯誤:問題:parameter_rejected |建議:invalid_value_for_amount> oauth_parameters_rejected | 0.00 –

回答

4

問題

你量有千個分隔符......像這樣Ksh.4,999而不是傳遞一個值,就像4999

要麼你是路過的量與整數逗號(您可以通過刪除邏輯中的逗號來修復)或number_format()方法添加千位分隔符(解釋如下)。

解決方案

根據the PHP docsnumber_format()做這樣的事情(僅基本情況)...它

// english notation (default) 
$english_format_number = number_format($number); 
// 1,235 

注意如何添加一個,作爲千個分隔符。這是正在轉換(編碼)到%2C。 Pesapal不理解,的數字,這是您傳遞給他們的數字。 ......從使用數千個運營商停止功能做這樣的事......

// english notation without thousands separator 
$english_format_number = number_format($number, 2, '.', ''); 
// 1234.57 

第三個參數指定的小數點分隔符(這是.)和第四指定千位分隔符(這是一個空字符串)。

但是正如@BabyAzerty所說,沒有代碼,沒有什麼可以幫助您的。我會修改答案,給你的問題提供更多的上下文,但上面的問題與我在上面的問題和評論中詳細闡述的實現看上去差不多。

0
 $amount1 = (integer)$data->amount; 
     $amount = number_format($amount1, 2, '.', '');//format amount to 2 decimal places 
     $desc = $data->phone_type; 
     $type = "MERCHANT"; //default value = MERCHANT 
     $reference = $data->reference;//unique order id of the transaction, generated by merchant 
     $first_name = $data->name1; 
     $last_name = $data->name2; 
     $email = $data->email; 
     $phonenumber = $data->mobile;//ONE of email or phonenumber is required 
+0

我有這個問題,我做了什麼@kingori maina建議,但得到問題:parameter_rejected |建議:invalid_value_amount_exceeds_limit> oauth_parameters_rejected | 84999.00 –

0

此錯誤表示您在Pesapal上的帳戶對其交易金額有限制。默認情況下,金額通常設置爲10美元或等值的本地貨幣。

您需要通過support.pesapal.com與團隊聯繫,通過爲您的業務提交合同和文檔來完成您的註冊,以便激活該帳戶以進行完整交易。

相關問題