paypal form not sending data properly - php

I am trying to submit the following paypal form through a hosted-payment system. however, it does not seem to be passing through any of the variables apart from the price.
Can anyone see where I am going wrong:
<form action='https://securepayments.paypal.com/cgi-bin/acquiringweb' method='post' target='hss_iframe' id='PayPalForm' name='PayPalForm'>
<input type='hidden' name='cmd' value='_hosted-payment' />
<input type='hidden' name='charset' value='utf-8' />
<input type='hidden' name='currency_code' value='GBP' />
<input type='hidden' name='business' value='seller#email.com' />
<input type='hidden' name='paymentaction' value='sale' />
<input type='hidden' name='template' value='TemplateD' />
<input type='hidden' name='return' value='http://yoursite.com/groupon-success.php' />
<input type='hidden' name='notify_url' value='http://yoursite.com/paypal-groupon- ipn.php' />
<input type='hidden' name='item_name' value='Item name' />
<input type='hidden' name='item_number' value='4' />
<input type='hidden' name='subtotal' value='0.01' />
<input type='hidden' name='custom' value='41' />
<input type='hidden' name='address_override' value='true' />
<input type='hidden' name='first_name' value='Jack' />
<input type='hidden' name='last_name' value='Jones' />
<input type='hidden' name='address1' value='address1' />
<input type='hidden' name='city' value='Manchester' />
<input type='hidden' name='zip' value='M20 1AA' />
<input type='hidden' name='country' value='UK' />
<input type='hidden' name='billing_first_name' value='Jack' />
<input type='hidden' name='billing_last_name' value='Jones' />
<input type='hidden' name='billing_address1' value='address1' />
<input type='hidden' name='billing_city' value='Manchester' />
<input type='hidden' name='billing_zip' value='M20 1AA' />
<input type='hidden' name='billing_country' value='UK' />
</form>
it is then been passed to an iframe which seems to work fine using:
<iframe width="100%" scrolling="no" height="580px" frameborder="no" name="hss_iframe" style="float:right;"></iframe>
<script type="text/javascript">
$(function(){
$("#PayPalForm").submit();
});
</script>
Can anyone help with why this data does not seem to pass anything through
--------------- EDIT
Changed cmd to _xclick and passes through fine, so obviously an issue with _hosted-payment
Can anyone give any ideas

If by "however, it does not seem to be passing through any of the variables", you mean it doesn't display the item name / item number: that's correct. Website Payments Pro Hosted Solution doesn't currently support item details. You should remove these parameters as they're not in use for this product.
In addition, the billing/shipping address will be used, but you won't be able to modify them if you're using templateD.

Related

Pay pall Developer Mode Integartion

I searched lot but unable to resolved pay pal issue. "
PayPal cannot process this transaction because of a problem with the seller's website. Please contact the seller directly to resolve this problem."
here is simple code .
product kit $250
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="paypal">
<input type='hidden' name='business' value='syhunk835#gmail.com'>
<input type='hidden' name='item_name' value='Camera'>
<input type='hidden' name='item_number' value='1'>
<input type='hidden' name='amount' value='0.01'>
<input type='hidden' name='no_shipping' value='1'>
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='notify_url' value='http://SITE NAME/payment.php'>
<input type='hidden' name='cancel_return' value='http://SITE NAME/cancel.php'>
<input type='hidden' name='return' value='http://SITE NAME/success.php'>
<!-- COPY and PASTE Your Button Code -->
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="### COPY FROM BUTTON CODE ###"><input type="image"src="https://www.sandbox.paypal.com/en_US/i/btn/btn_buynow_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
</form>
I tried with chf-8 but still same issue. I do not know where is I am wrong.

php: Unable to return to my site after Paypal payment

First I created test accounts for sandbox which were generated as following by Paypal:
1- me#mail.com
2- me-facilitator#mail.com
2- me-buyer#mail.com
Now I turned Auto Return to ON on my MAIN account I am using for Paypal that is me#mail.com. My form looks like:
<form action='https://www.sandbox.paypal.com/cgi-bin/webscr' method='post' id="frmPayPal" name='frmPayPal'>
<input type='hidden' name='business' value='me-facilitator#mail.com'>
<input type='hidden' name='cmd' value='_xclick'>
<input type='hidden' name='item_name' value='Awesome Stuff'>
<input type='hidden' name='item_number' value='0002'>
<input type='hidden' name='amount' value='0.99'>
<input type='hidden' name='no_shipping' value='1'>
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='handling' value='0'>
<input type="hidden" name="rm" value="2">
<input type='hidden' name='return_method' value='2' />
<input type='hidden' name='cancel_return' value='http://296c6e7b.ngrok.io/clients/ryan/pay.php'>
<input type='hidden' name='return' value='http://296c6e7b.ngrok.io/clients/ryan/pay.php'>
<img alt="" border="0" src="https://www.sandbox.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
</form>
Now I can make successful purchase but it does not return to the URL.
I am submitting form via jQuery
You need to login your me-facilitator#mail.com and enable the Auto Return for Website Payments just like how you did in your me#mail.com.
How i figured it out? because of this:
<input type='hidden' name='business' value='me-facilitator#mail.com'>

Sagepay form submit parameters in PHP

How many parameters I need to pass the in form ULR ,It can interact with sagepay payment gateway. Following parameters are I have passed in the form url but I ma getting the following error:
Error:
Error number:
5068
Error message:
The encryption method is not supported by this protocol version.
I am unable to connect the sagepay server payment.I am completly new about the configuration of sagepay payment.
Some one can please tell me how many parameter I need to pass and What are they are?
How to encrypt the values and then pass the values?
Code:
<form name='sagepay' action='{$pm_sagepay_url}' method='post' onsubmit='this.submit.disabled=true;return true;'>
<input type='hidden' name='VPSProtocol' value='3.00'>
<input type='hidden' name='TxType' value= 'PAYMENT'>
<input type='hidden' name='Vendor' value= 'protxross'>
<input type='hidden' name='Crypt' value= 'TPjs72eMz5qBnaTa'>
<input type='hidden' name='cmd' value='_xclick'>
<input type='hidden' name='business' value='{$this->pm_sagepay_business}'>
<input type='hidden' name='item_name' value='".$order->order_description()."'>
<input type='hidden' name='amount' value='".sprintf("%01.2F", ($order->order_total_price-$order->order_fee))."'>
<input type='hidden' name='handling' value='".($order->order_fee)."'>
<input type='hidden' name='return' value='".$_SHOP->root_secured. 'checkout_accept.php?'.$order->EncodeSecureCode()."'>
<input type='hidden' name='notify_url' value='".$_SHOP->root_secured. 'checkout_notify.php?'.$order->EncodeSecureCode()."&setlang={$_SHOP->lang}'>
<input type='hidden' name='cancel_return' value='".$_SHOP->root_secured. 'checkout_cancel.php?'.$order->EncodeSecureCode()."'>
<input type='hidden' name='currency_code' value='{$_SHOP->organizer_currency}'>
<input type='hidden' name='undefined_quantity' value='0'>
<input type='hidden' name='no_shipping' value='1'>
<input type='hidden' name='no_note' value='1'>
<input type='hidden' name='rm' value='2'>
<input type='hidden' name='invoice' value='{$order->order_id}'>
<div align='right'>
<input type='submit' value='{!pay!}' name='submit2' alt='{!sagepay_pay!}' >
</div>
</form>";
The info added to the form needs to be encrypted you be better off using the guide found here:
http://www.sagepay.co.uk/file/12241/download-document/FORM_Integration_and_Protocol_Guidelines_010814.pdf?token=gMABp5MzTV1BevfFpoTFkrofFWwHXySRM5tzGIdKj3Q
Also this guy has made a basic script for the form i got the main form to send it was the success page i could not get to work but i have now so if you get stuck give me a shout..
https://github.com/tolzhabayev/sagepayForm-php

When set value of action, post/get don't work

I have form:
echo "
<form action='http://domain.com/' method='get'>
<input type='hidden' name='order_id' value='".$_SESSION['shoppingcart_id']."' />
<input type='hidden' name='account_id' value='".$account_id."' />
<input type='hidden' name='action' value='add' />
<input type='submit' class='form-button' value='Buy' />
</form>
";
and get don't get any results.
http://domain.com/
If I set value of action to empty like:
<input type='hidden' name='action' value='' />
the result is:
http://domain.com/?order_id=xxxxxxxx&acount_id=xxxxxxxxx$action=
I'm confused why with empty action get results, but with action don't get anything!?
p.s. With "post" is the same.

How can I get multiple forms to use the same inputs in php

I have 15 identical PayPal "Buy Now" buttons each driven by its own form on a single php page. Each button has about 20 input variables but only 2 are unique to each item (item_name & item_number). Is there a way to clean up my code and have all the forms use the same input array? Not just the data, the whole string.
Thanks, Wayne
Example:
<form target='paypal' action='https://www.paypal.com/cgi-bin/webscr' method='post'>
<input type='hidden' name='cmd' value='_cart'>
<input type='hidden' name='business' value='myemail#mydomain.com'>
<input type='hidden' name='lc' value='US'>
<input type='hidden' name='item_name' value='Modern Art Print'>
<input type='hidden' name='item_number' value='MA024'>*
<input type='hidden' name='button_subtype' value='products'>
<input type='hidden' name='no_note' value='0'>
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='add' value='1'>
<input type='hidden' name='bn' value='PP-ShopCartBF:btn_cart_SM.gif:NonHostedGuest'>
<input type='hidden' name='on0' value='Select Size'>Buy Print
<select name='os0'>
<option value='11 x 14'>11 x 14 $30.00</option>
<option value='8 x 10'>8 x 10 $20.00</option>
</select>
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='option_select0' value='11 x 14'>
<input type='hidden' name='option_amount0' value='30.00'>
<input type='hidden' name='option_select1' value='8 x 10'>
<input type='hidden' name='option_amount1' value='20.00'>
<input type='hidden' name='option_index' value='0'>
<input type='image' src='https://www.paypalobjects.com/en_US/i/btn/btn_cart_SM.gif' border='0' name='submit' alt='PayPal - The safer, easier way to pay online!'>
</form>
Create a function that builds the form. Example:
function paypalForm( $item_name, $item_number ) {
?>
<form target='paypal' action='https://www.paypal.com/cgi-bin/webscr' method='post'>
<input type='hidden' name='cmd' value='_cart'>
<input type='hidden' name='business' value='myemail#mydomain.com'>
<input type='hidden' name='lc' value='US'>
<input type='hidden' name='item_name' value='<?=$item_name?>'>
<input type='hidden' name='item_number' value='<?=$item_number?>'>*
<input type='hidden' name='button_subtype' value='products'>
<input type='hidden' name='no_note' value='0'>
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='add' value='1'>
<input type='hidden' name='bn' value='PP-ShopCartBF:btn_cart_SM.gif:NonHostedGuest'>
<input type='hidden' name='on0' value='Select Size'>Buy Print
<select name='os0'>
<option value='11 x 14'>11 x 14 $30.00</option>
<option value='8 x 10'>8 x 10 $20.00</option>
</select>
<input type='hidden' name='currency_code' value='USD'>
<input type='hidden' name='option_select0' value='11 x 14'>
<input type='hidden' name='option_amount0' value='30.00'>
<input type='hidden' name='option_select1' value='8 x 10'>
<input type='hidden' name='option_amount1' value='20.00'>
<input type='hidden' name='option_index' value='0'>
<input type='image' src='https://www.paypalobjects.com/en_US/i/btn/btn_cart_SM.gif' border='0' name='submit' alt='PayPal - The safer, easier way to pay online!'>
</form>
<?
}
Assuming you are talking about cleaning the HTML markup, rather than generating the forms at the server side...
You could do it with Javascript, but it is not a good idea to rely on Javascript for your core site functionality, because it can be disabled by the user, and may break in a way you have not predicted in some browser or other.
I think that, since you are submitting the data directly to Paypal and therefore have no control over the server side, the answer to this is probably NO.
If you are talking about cleaning up the PHP code, Rijk van Wel's answer may help.
Please refer to this article: http://www.chami.com/tips/internet/042599i.html
You can create a single form with multiple submit buttons and assign both item_name & item_number as button's value. This way the inputs aren't repeated in the code and you can easily distinguish between submitted forms.
Note: the server-side code in the article is written in ASP, but in PHP it's the same. Just refer to $_POST['buttonNameHere']

Categories