我试图将Paypal自适应支付整合到laravel中。
我想使用类似于此代码的内容: http://proggblo.blogspot.ca/2013/04/paypal-adaptive-payments-parallel.html
问题是,我不太确定如何在laravel中做到这一点。我会使用控制器并通过邮寄请求吗?如果是这样,它会是什么样子?像这样的东西? 路线:
Route::post('/payment', [
'uses' => '\CommendMe\Http\Controllers\PaypalController@payment',
'as' => 'quote.payment',
]);
控制器:
class PaypalController extends Controller {
public function payment(Request $request) {
$apiUrl = "https://svcs.sandbox.paypal.com/AdaptivePayments/";
$paypalUrl = "https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=";
function __construct() {
$this->headers = array(
"X-PAYPAL-SECURITY-USERID: ".API_USER,
"X-PAYPAL-SECURITY-PASSWORD: ".API_PASS,
"X-PAYPAL-SECURITY-SIGNATURE: ".API_SIG,
"X-PAYPAL-REQUEST-DATA-FORMAT: JSON",
"X-PAYPAL-RESPONSE-DATA-FORMAT: JSON",
"X-PAYPAL-APPLICATION-ID: ".APP_ID
);
}
function _paypalSend($data,$call) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->apiUrl.$call);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers);
return json_decode(curl_exec($ch), TRUE);
}
}
}
等。等剩下的代码。 (你可以在上面的链接中找到它)
现在,如果支付功能中的功能会执行,那就没问题了。
在这种情况下我应该使用中间件而不是控制器吗?
答案 0 :(得分:0)
与在标准PHP中执行多个方法没有什么不同。只需在控制器内创建方法,您就可以随时调用它们。
控制器中最大的问题是您的支付功能中嵌套了__construct方法。此外,如果您在POST请求中访问支付端点,则需要访问该方法中的$ data和$ call变量以便发送付款。因为您不显示数据来自哪些来源变量,我只能告诉你如何做到这一点
/^\/ashok(?:\/[a-z0-9]+)+$/i