PayPal Pay Now ボタンを使用して、ユーザーが製品の支払いを行えるようにしています。そのボタンがクリックされたときに、サーバーにもデータを送信したいと思います。したがって、これらの値を jQuery Ajax でサーバーに送信しています。残念ながら、これはうまくいくこともありますが、フォームの値を送信するにはページがあまりにも早く PayPal に送られ、保存されないことがあります。
jQueryコードは次のようになります
//...
function sendUserDetailsByAjax(orderId){
var name = $("#name").val();
var email = $("#email").val();
var arrivalTime = $("#arrivalTime").val();
$.ajax({
type: "POST",
url: "/order/updateuser",
data: { 'orderId': orderId, 'name': name, 'email': email, 'arrivalTime': arrivalTime },
success: function(data){
}
});
$('#payWithPaypal').submit();
}
//...
フォーム フィールドは次のとおりです。
<input id="arrivalTime" type="text" size="12" class="checkoutInput"/>
<input id="name" type="text" size="32" class="checkoutInput"/>
<input id="phone" type="text" size="32" class="checkoutInput"/>
そして、これが PayPal フォームです (${something} 要素はアプリである変数です:
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" id="payWithPaypal">
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="${place.payPalEmail}" />
<input type="hidden" name="item_name" value="My Order" />
<input type="hidden" name="amount" value="${order.total}" />
<input type="hidden" name="currency_code" value="AUD" />
<input type="hidden" name="lc" value="AU" />
<input type="hidden" name="button_subtype" value="products" />
<input type="hidden" name="return" value="http://mysite.com/${order.id}"/>
<input type="hidden" name="cancel_return" value="http:/mysite.com/cancel/${order.id}" />
<input type="hidden" name="notify_url" value="http://mysite.com?oid=${order.id}" />
<input type="hidden" name="oid" value="${order.id}" />
<input type="image" onclick="javascript:sendUserDetailsByAjax('${order.id}');" src="https://www.paypal.com/en_US/i/btn/x-click-but5.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!" />
</form>
ボタンがページを PayPal にリダイレクトする前に を確認し、送信するarrivalTime
方法について何かアイデアはありますか?name
email