Ahm*_*mad 3 php paypal paypal-sandbox paypal-ipn
我正在尝试使用paypal作为我网站的付款.
我的网站只出售虚拟货币,如在线游戏中的"钻石".
所以在阅读后我开始使用Express Checkout for Digital Goods,是吗?或者我必须采用其他付款方式?
那我的问题是在使用Express Checkout for Digital Goods时,如何传递自定义变量?
假设我想从我的数据库向paypal api支付user_id,diamond_id和其他一些变量.似乎paypal不支持自定义变量来传递api调用.我想在用户完成付款后,然后Paypal通过我的服务器通过user_id和我通过的其他变量完成付款,这样我就可以轻松了解详细信息.
搜索后我找到了一些解决方案,
哪种解决方案是对的?有什么解决方案吗?以及如何确保付款确认,我的意思是,如果有人知道并破解我的返回.
谢谢
如果您使用的是PAYPAL EXPRESS CHECKOUT NVP API和类SetExpressCheckOut()
参考支付认证
$paypal = new SetExpressCheckout($totalPrice);
Run Code Online (Sandbox Code Playgroud)
此类调用者实例化您将用于设置将客户重定向到Paypal并返回所需的参数的方法.必须设置总价格的变量以完成此类的启动.
$paypal->setNVP("RETURNURL", "http://yourURL.com/confirm.php");
$paypal->setNVP("HDRIMG", "http://yourURL.com/image.jpg");
$paypal->setNVP("EMAIL", "$userEmail"); // customer's email
$paypal->setNVP("AMT", $totalPrice);
$paypal->setNVP("SHIPPINGAMT", "32");
$paypal->setNVP("CUSTOM", "Anything you want to put"); // user_id, diamond_id
$paypal->setNVP("INVNUM", $uniqueID); // your Order number this include the id of your order (order table will also have user_id, diamond_id related to the order so you will automaticaly get them once you send the orderid )
$paypal->getResponse();
Run Code Online (Sandbox Code Playgroud)
在您提交转账到Paypal之前,请知道您可以使用该setNVP()
功能发送可选值,以自定义付款流程.默认情况下,可以在中找到的所有值etc/NVP/SetExpressCheckout.ini file
.
getResponse()
将用户的浏览器发送到Paypal以验证信用信息.特别是在一个名为etc/NVP/PayPalNVP.ini的文件中,您必须在测试模式(沙盒)和实时之间可变地设置的URL.
完成销售
$paypal = new GetExpressCheckoutDetails;
$details = $paypal->getResponse();
Run Code Online (Sandbox Code Playgroud)
DoExpressCheckoutPayment()
$payment = new DoExpressCheckoutPayment($totalPrice);
$response = $payment->getResponse();
Run Code Online (Sandbox Code Playgroud)
检查状态
if ($response['PAYMENTSTATUS'] == 'Completed') {
# process information
}
Run Code Online (Sandbox Code Playgroud)
显示getResponse的结果
echo '<pre>';
print_r($details);
echo '<pre>';
print_r($response);
Run Code Online (Sandbox Code Playgroud)
在详细说明这