收据编号未在贝宝沙盒响应中返回
Posted
技术标签:
【中文标题】收据编号未在贝宝沙盒响应中返回【英文标题】:Receipt number not returning in paypal sandbox response 【发布时间】:2015-12-24 16:49:58 【问题描述】:我正在使用贝宝沙盒。在客户付款后的项目中,我必须将正式收据编号存储到数据库中。所以我创建了一个 servlet 作为我的返回 URL,我想根据事务 id 检索 OR 编号。我正在使用带有 Buynow 按钮的标准付款方式。这是我获取交易详情的代码。
HttpClient client = HttpClients.createDefault();
HttpPost post = new HttpPost("https://api-3t.sandbox.paypal.com/nvp");
List<NameValuePair> params = new ArrayList<>();
params.add(new BasicNameValuePair("METHOD","GetTransactionDetails"));
params.add(new BasicNameValuePair("VERSION","124.0"));
params.add(new BasicNameValuePair("USER", "morbidcode666_api1.gmail.com"));
params.add(new BasicNameValuePair("PWD","L66QPRP2RTRB9NEA"));
params.add(new BasicNameValuePair("SIGNATURE", "AUT-r5lylj2D9Bdu1rj5Xzp05w8eAMod08fTK-pwniTNTHScwi4w9jdh"));
params.add(new BasicNameValuePair("TRANSACTIONID",request.getParameter("tx")));
post.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
HttpResponse postresponse = client.execute(post);
HttpEntity entity = postresponse.getEntity();
System.out.println(EntityUtils.toString(entity));
根据https://developer.paypal.com/docs/classic/api/merchant/GetTransactionDetails_API_Operation_NVP/,
RECEIPTID - 收据识别号
所以我认为这应该正是我正在寻找的,但它不在响应中。这是回复。
RECEIVERBUSINESS=morbidcode666@gmail.com RECEIVEREMAIL=morbidcode666@gmail.com RECEIVERID=P687QZN7HUBGE EMAIL=pyroclastic33@gmail.com PAYERID=PA88PWZ8HKGDN PAYERSTATUS=已验证 国家代码=美国 BUSINESS=Morbid Code 的测试商店 SHIPTONAME=Morbid Code 的测试商店 SHIPTOSTREET=1 主街 SHIPTOCITY=圣何塞 SHIPTSTATE=CA SHIPTOCOUNTRYCODE=US SHIPTOCOUNTRYNAME=美国 SHIPTOZIP=95131 ADDRESSOWNER=贝宝 ADDRESSSTATUS=已确认 销售=0.00 装运量=0.00 装运量=0.00 SHIPDISCOUNT=0.00 保险金额=0.00 时间戳=2015-09-27T08:33:14Z CORRELATIONID=930df496bece1 ACK=成功 版本=124.0 构建=17750617 FIRSTNAME=病态 LASTNAME=代码 TRANSACTIONID=5WA70930EK241520G TRANSACTIONTYPE=webaccept PAYMENTTYPE=即时 订单时间=2015-09-27T08:32:59Z AMT=10.00 FEEMT=0.59 税法=0.00 CURRENCYCODE=USD PAYMENTSTATUS=已完成 PENDINGREASON=无 原因代码=无 SHIPPINGMETHOD=默认 PROTECTIONELIGIBILITY=合格 PROTECTIONELIGIBILITYTYPE=ItemNotReceivedEligible%2cUnauthorizedPaymentEligible L_QTY0=1 L_TAXAMT0=0.00 L_CURRENCYCODE0=美元 L_TAXABLE0=false
我对贝宝和这种交易的东西非常陌生。我该怎么办?
【问题讨论】:
【参考方案1】:仅当有人通过 PayPal 结帐页面上的第二个选项(使用信用卡或借记卡付款)付款时,才会返回变量“RECEIPTID”。
如果有人通过 PayPal 帐户付款,则没有“RECEIPTID”。
【讨论】:
以上是关于收据编号未在贝宝沙盒响应中返回的主要内容,如果未能解决你的问题,请参考以下文章