2012-03-14 28 views
12

Tôi hiện đang đăng giao dịch thường xuyên tới Paypal Express và đang đến cổng mà không gặp lỗi.Paypal Express - Thêm Giảm giá

Tôi muốn định cấu hình giỏ hàng của mình để gửi chiết khấu cho cổng. Suy nghĩ đầu tiên của tôi là sửa đổi giá trị 'AMT' được gửi đến cổng. Tuy nhiên, có vẻ như Paypal xác nhận trường 'AMT' bằng cách tính tổng số các trường ITEMAMT, TAXAMTSHIPPINGAMT để đảm bảo tổng số không thay đổi:

[L_AMT0] => 49.99 
[L_NUMBER0] => 3706{3}8 
[L_QTY0] => 1 
[L_TAXAMT0] => 0.00 
[ITEMAMT] => 49.99 
[TAXAMT] => 0 
[SHIPPINGAMT] => 14.95 
[AMT] => 64.94 

Có bao nhiêu tôi gửi giảm giá cho Paypal? Tôi đã xem qua tài liệu nào tôi có thể tìm thấy, không có may mắn; các câu hỏi tương tự ở đây trên SO cũng không giúp được gì. Cảm ơn.

Chỉnh sửa: Tôi nhận thấy rằng tôi có thể đi qua trường SHIPDISCAMT. Tôi không biết nếu điều này sẽ cho phép tôi làm những gì tôi cần nó mặc dù - Tôi vẫn nhận được lỗi chỉ ra soemthing là 'không phù hợp'.

+0

Bạn có thể không tính trước chiết khấu và yếu tố vào biến PayPal của mình không? – Josh

+0

@Josh Tôi có thể làm như thế nào? PayPal sẽ tính toán lại tổng số bằng cách xem xét các phần tử L_ * riêng lẻ; nếu tính toán của nó không khớp với trường 'AMT' mà tôi đã phát ra thì nó sẽ trả về lỗi cổng. Tôi đã nghĩ đến việc sửa đổi từng cá nhân 'L_AMT *' để lấy một phần giá trị chiết khấu của mỗi, nhưng điều đó có vẻ giống như một giải pháp khủng khiếp. Bạn có thể cung cấp trả lời sâu hơn không? (Cảm ơn bài đăng.) – Pete171

+0

@Josh Đã trả lời câu hỏi của riêng tôi. Tuy nhiên, cảm ơn sự giúp đỡ của bạn! – Pete171

Trả lời

22

OK.

Hóa ra bạn có thể chuyển số tiền âm thông qua dưới dạng chi tiết đơn hàng và tự gắn nhãn đó làm giảm giá. Tôi phải thêm đoạn code trên:

$params['L_NAME1'] = 'Discount Coupon'; 
$params['L_AMT1'] = -$discountCodeAmount; 
$params['L_QTY1'] = 1; 
$params['ITEMAMT'] -= $discountCodeAmount; 
$params['AMT'] -= $discountCodeAmount; 

này có hiệu lực thi hành sau:

enter image description here

Tôi tìm thấy câu trả lời của tôi trong PDF này:

https://cms.paypal.com/cms_content/CA/en_US/files/developer/PP_ExpressCheckout_IntegrationGuide.pdf

Đối với một số lý do , thông tin đó không được đưa ra trong một số bài báo/tài liệu chính thức khác của PayPal mà tôi đã đọc.

+0

Tôi không thể tìm thấy nó, mặc dù nó đã được ghi nhận cho các giải pháp PayPal khác. Tuyệt vời tìm thấy. – Josh

0

Tôi đã sử dụng kỹ thuật chi tiết đơn hàng giá phủ định để đạt được chiết khấu nhưng đã gặp phải sự cố - nếu giá trị chiết khấu bằng với giá sản phẩm, ví dụ: các chi tiết đơn hàng như:

[L_NAME0] => Product #1 
[L_COST0] => 18.99 
[L_QTY0] => 1 
[L_NAME1] => Discount 
[L_COST1] => -18.99 
[L_QTY1] => 1 
[ITEMAMT] => 0.00 
[FREIGHTAMT] => 15.00 
[HANDLINGAMT] => 0.00 

Sau đó, nó tạo lỗi PayPal "Lỗi định dạng trường: 10431-Khoản tiền không hợp lệ".

Tuy nhiên, loại bỏ sản phẩm chiết khấu và gửi thay vì trường "DISCOUNT" đã khắc phục vấn đề này và đã cung cấp mới :-) PayPal luôn hiển thị trường này là "Giảm giá vận chuyển", trong khi đó thực sự là giảm giá mặt hàng. Ít nhất, nó hoạt động ...

0

Vui lòng tham khảo URL Paypal này HTML Variable List

<input type="hidden" name="discount_amount_cart" id="discount_amount_cart" value="3.00"> 

Bạn có thể gửi giỏ rộng chiết khấu (discount_amount_cart), sản phẩm giảm giá rộng (Chiết khấu) sử dụng các thông số này. Bạn có thể tìm thêm thông tin trong liên kết cung cấp. Đảm bảo truyền giá trị Integitive Integer. PayPal Không chấp nhận Giá trị âm.

Các vấn đề liên quan