我尝试使用codeigniter和pesapal测试我的付款模块,但我不断收到此错误“问题:参数已解决|建议:invalid_value_for_amount> oauth_parameters_rejected | Ksh.4%2C999”。
Ksh。 4%2C999是账单ksh。我使用了正确的Pesapal键,所以我不知道出了什么问题。
答案 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上的团队,通过为您的公司提交合同和文档来完成注册,以便激活帐户以进行完整交易。