如何使用Codeigniter和Pesapal解决无效参数错误

时间:2014-03-05 09:56:15

标签: codeigniter

我尝试使用codeigniter和pesapal测试我的付款模块,但我不断收到此错误“问题:参数已解决|建议:invalid_value_for_amount> oauth_parameters_rejected | Ksh.4%2C999”。

Ksh。 4%2C999是账单ksh。我使用了正确的Pesapal键,所以我不知道出了什么问题。

3 个答案:

答案 0 :(得分:4)

<强>问题

你的金额有一千个分隔符......就像这个Ksh.4,999而不是传递一个像4999这样的整数的值。

要么使用逗号传递数量(可以通过删除逻辑中的逗号来修复),或者number_format()方法添加千位分隔符(解决方案中给出的解释如下)。

<强>解决方案

根据the PHP docs number_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

第3个参数指定小数点分隔符(.),第4个参数指定千位分隔符(空字符串)。

但正如@BabyAzerty所说,没有代码,我们可以用来帮助你。我会在答案中修改你给问题的更多背景,但上面几乎是我在上面的问题和评论中阐述的你的实现错误。

答案 1 :(得分: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

答案 2 :(得分:0)

此错误表示您在Pesapal上的帐户对其可以处理的金额有限制。默认情况下,金额通常设置为10美元或等值的当地货币。

您需要联系support.pesapal.com上的团队,通过为您的公司提交合同和文档来完成注册,以便激活帐户以进行完整交易。