2014-03-05 52 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与团队联系,通过为您的业务提交合同和文档来完成您的注册,以便激活该帐户以进行完整交易。

相关问题