현재 내 가게에 Paypal Payment Gateway을 구현 중입니다. paypal 샌드 박스 계정에 반송 URL을 추가했습니다.Woocommerce + Payment (PayPal) - 주문 상태를 안전하게 업데이트 + 거래 ID 받기
결제 단계까지 :
- 는 로그인 & 프로세스 지불
- 이 succes에에
return_url
로 리디렉션 주문 - 페이팔 사이트에
WC_Gateway_Paypal
클래스 - 리디렉션을 통해 지불을 만들기 만들기
샘플 코드 :
function create_order()
{
$order = wc_create_order();
$product = wc_get_product(55);
$order->add_product($product, 1);
$address = array(
'first_name' => 'John',
'last_name' => 'Doe',
'company' => '',
'email' => '[email protected]',
'phone' => '111111',
'address_1' => '',
'address_2' => '',
'city' => '',
'state' => '',
'postcode' => '',
'country' => ''
);
$order->set_address($address, 'billing');
$order->set_address($address, 'shipping');
$order->calculate_totals();
$order->set_payment_method('paypal');
$paypal = new WC_Gateway_Paypal();
$paymentdetails = $paypal->process_payment($order->get_id());
return $paymentdetails;
}
$paymentdetails
나는 고객을 리디렉션 할 페이팔 URL을 반환합니다. http://mypage.com/56/?key=wc_order_59d24a26d4ccb&utm_nooverride=1
지금 내 주문을 업데이트 할 :
성공 결제 후 고객에 페이팔에서 리디렉션 가져옵니다. 리디렉션 URL에서 ID와 주문 키를 읽을 수는 있지만 보안 문제는 아닐 것입니다. 누군가 ID 또는 키를 알고 있다면 그는 내 사이트에 GET
을 방아쇠를 당기고 실제 지불없이 그의 주문을 업데이트 할 수 있습니다.
더 좋은 방법이 있나요? 또는 ID 대신 key=wc_order_59d24a26d4ccb
을 사용해야하고 프런트 엔드에 키를 보내지 않도록주의해야합니까?
또한 transaction_id
을받지 못했습니다. $order->get_transaction_id();
은 결제 완료 후 비어 있습니다. 내 로컬 컴퓨터에서 개발 중이거나 샌드 박스 계정으로 개발 중이기 때문입니까?
배우기 만하면됩니다. 무료 [PayPal for WooCommerce] (https://wordpress.org/plugins/paypal-for-woocommerce/) 플러그인을 사용하지 않는 특별한 이유가 있습니까? –
WordPress 테마없이 ReactJS 앱을 만들고 있는데, 아약스를 통해 모든 기능을 직접 호출 할 수 있어야합니다. – Dario
로컬 컴퓨터에서 개발 중이기 때문에 이것이라고 생각합니다. 내 대답을 확인하십시오. –