Những gì bạn cần làm là khá phức tạp, đầu tiên, giới thiệu, các nút paypal được mã hóa có cách bố trí như sau:
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIIEQYJKo...Encrypted stuff...IF5ioje8JH0LAA+5U7P+tabAMOL37k=-----END PKCS7-----">
<input type="image" src="https://www.paypalobjects.com/es_XC/MX/i/btn/btn_buynowCC_LG.gif" border="0" name="submit" alt="PayPal, la forma más segura y rápida de pagar en línea.">
<img alt="" border="0" src="https://www.paypalobjects.com/es_XC/i/scr/pixel.gif" width="1" height="1">
</form>
Trường cmd chỉ ra một nút Mua ngay được mã hóa (kiểm tra các giá trị cho các nút bạn muốn tạo), và các lĩnh vực mã hóa là nội dung thực tế của các nút trong cách bố trí như sau:
cert_id=ZQCMJTZS27U4F
cmd=_xclick
[email protected]
item_name=Handheld Computer
item_number=1234
custom=sc-id-789
amount=500.00
currency_code=USD
tax=41.25
shipping=20.00
no_note=1
cancel_return=http://www.company.com/cancel.htm
Lưu ý, đây là những định dạng cặp = giá trị, đối với một tài liệu tham khảo cái nhìn đầy đủ ở đây: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_Appx_websitestandard_htmlvariables. Bây giờ lý thuyết, để có được trường mã hóa, mã hóa tốt, bạn cần ký các giá trị này với chứng chỉ của bạn (chứng chỉ x509) và khóa riêng, sau đó bạn cần mã hóa thông báo đã ký này bằng chứng chỉ công khai của paypal.
Đi thực hành, để thực hiện điều đó, bạn có thể (cần) sử dụng hai hàm PHP sau (một phần của phần mở rộng OpenSSL): openssl_pkcs7_sign và openssl_pkcs7_encrypt.
Tôi thấy phần cuối này rất phức tạp để thiết lập, vì vậy tôi khuyên bạn nên tải xuống PHP SDK cho PayPal avalaible tại đây: https: // www.x.com/ community/ppx/sdks # WPST và trực tiếp tại đây: https://cms.paypal.com/cms_content/US/en_US/files/developer/PP_PHP_WPS_Toolkit.zip , SDK này đi kèm với lớp EWPServices chứa phương thức encryptButton cung cấp cho bạn nút mã hóa khá dễ dàng; nếu bạn muốn xem xét các xương thì hãy tìm trong lớp PPCrypto, người cung cấp cho bạn phương thức signAndEncrypt chỉ cung cấp cho bạn chuỗi được mã hóa mà bạn cần cho trường và hiển thị cho bạn quá trình mã hóa nút.
Tôi nghĩ IPN có thể là cách để giải quyết vấn đề này. Hoặc là nút đó hoặc nút tùy chỉnh. Tôi sẽ xem xét kỹ hơn ... –
Lưu ý: IPN sẽ kiểm tra sau khi thanh toán, vì vậy bạn sẽ vẫn có các trường hợp bạn nhận được một khoản thanh toán giả mạo. Mặc dù họ không nhận được sản phẩm, có vẻ như một chút lộn xộn bởi vì bạn sẽ bị giả mạo thanh toán nhận được gửi cho bạn mỗi một lần trong một thời gian. –