저는 일반 "일반 텍스트"PayPal 버튼을 암호화 된 버튼 (둘 다 동적이어야하므로 직접 만든 버튼)으로 전환했습니다. 평범한 것들이 잘 작동하지만 나는 Encrypted 버전의 문제를 겪고있다. Paypal은 일반적인 "죄송합니다 - 마지막 작업을 완료 할 수 없습니다."라는 메시지와 함께 실패하고 더 이상의 정보를 제공하지 않습니다.일반 "죄송합니다. 마지막 작업을 완료 할 수 없습니다."오류
나는 게시물이있어 정보 ... <>에서
cert_id=<certificateID>
business=<merchantID>
return=<returnURL>
cancel_return=<returnURL>
notify_url=<ipnURL>
cn=Email Address Needed
lc=GB
currency_code=GBP
button_subtype=services
no_note=0
no_shipping=1
rm=1
charset=utf-8
item_name=<productName>
item_number=<productID>
amount=<value>
모든 것이이 시점에서 보안상의 이유로 제거,하지만 그건 당신에게 다음 암호화 게시되는 내용의 일부 아이디어를 줄 것이다.
양식은 간단하고 jQuery를 AJAX 호출에 의해 제출
는<form id='igp-<prodID>' action='https://www.paypal.com/cgi-bin/webscr' method='post'>
<input type='hidden' name='cmd' value='_s-xclick' />
<input type='hidden' name='encrypted' value='{$paypalData}' />
</form>
페이팔의 문서는 ... (암호화 된 버튼을 페이지에 추가 데이터의 -massive- 양을 줄일 수 있습니다) 오히려 당신이 여기에서해야 할 일의 측면에서 무작위로 퍼져 있지만, 나는 실종 된 것을 볼 수 없습니다.
cert_id의 문자를 바꿀 경우 데이터를 해독 할 수 없다는 메시지가 표시되는 대신 동일한 메시지가 계속 나오면서 오류가 발생하지 않는다는 인상을줍니다.
아이디어가 있으십니까?
EDIT/업데이트 : 실제로 "인증서 ID의 암호를 해독 할 수 없습니다."라는 메시지가 나타납니다. (샌드 박스 사용시 나타남). OpenSSL로 전송 된 코드는 정상 (올바른 '='일치 값)으로 보입니다.
I가 사용하고 OpenSSL에 대한 코드 ... 다시 큰 PCK7Z 블록과에는 OpenSSL에서 오류없이 생산
$opensslOutput = trim(shell_exec("export RANDFILE='system/.rnd'; (openssl smime -sign -signer {$keystoreCert} -inkey {$keystoreKey} -outform der -nodetach -binary <<_EOF_\n{$paypalData}\n_EOF_\n) | openssl smime -encrypt -des3 -outform pem -binary {$paypalCert}"));
. 그래서 이것은 페이팔이 여기서 실패 할 수있는 질문을 던집니다. 위의 코드는 더 이상 페이팔이 좋아하는 서명 된 블록을 생성하지 않습니까?
FWIW이 오류는 이제 영구적이며 암호화 된 지불에만 국한되지는 않습니다. 많은 포럼 항목에서 가능한 브라우저 문제 (Chrome이 아닌 Safari에서 작동)를 확인했으며 전체적인 인상은 Paypal의 디자인 정밀 검사 때문입니다. 어느 쪽이든, 그것은 지불에 영향을 미치고 있습니다. – cbmtrx