این کدی که گذاشتین چرا اینطوریه؟ داره متدهای وب سرویس رو با سینتکس NuSOAP صدا میزنه ولی از SOAP استفاده کرده! توی NuSOAP پارامترها رو توی یک آرایه میریزیم و اینطوری صدا میزنیم:
$client->call('methodName', $parameters);
ولی توی SOAP اینطوری صدا زده میشه:
$client->methodName($parameter1, $parameter2, ...(;
اصلاً تکلیف این کد با خودش معلوم نیست. توی اینترنت درمورد کلاس کار با وب سرویس بانک ملت جستجو کنید. نمونه های خوب زیادی هست.
امروز تونستم با کلی مطالعه بفهمم مشکل کد دیروز از چی بوده البته یه مقدارش هم مدیون شرکت به پرداخت هستیم ناگفته نماند
تغییرات رو میذارم اینجا تا بقیه دوستان هم اگر با این اشکال روبرو شدن بتونن استفاده کنن
ما باید به جای استفاده از این خط کد
$client = @new SoapClient('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl');
ازکد زیر استفاده کنیم
$client = new nusoap_client('https://pgwstest.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl');
خوب به سلامتی پس مشکل مشخص شد. از قرار معلوم درگاه شما هنوز تو مرحله تست قرار داشته و نمیتونستین از درگاه اصلی استفاده کنین.
نیاز به CURL ندارین. یک فرم بساین که مقادیر فرم (قیمت و...) رو داخلش بصورت تگ مخفی گذاشتین و فقط دکمه Submit رو نشون بدین و به مشتری بگین این فاکتور شماست. اگه همه چیز درسته، روی دکمه پرداخت کلیک کنید. مقصد فرم رو هم صفحه بانک بگذارین. اگه نگران مسائل امنیتی مثل تغییر قیمت توی سورس کد و... هستین هم میتونید بعداً در برگشت، توی متد verify مبلغی که پرداخت شده رو چک کنید (verify اگه مبلغ پرداختی با مبلغی که شما توی فاکتور توی دیتابیس ثبت کردین و بعنوان پارامتر براش فرستادین نخونه، خطا میده).