用于银行交易中预期目的的带有自定义发票编号的 PayPal Rest API 付款
Posted
技术标签:
【中文标题】用于银行交易中预期目的的带有自定义发票编号的 PayPal Rest API 付款【英文标题】:PayPal Rest API payment with custom invoice number for intended purpose in bank transaction 【发布时间】:2014-09-19 13:10:42 【问题描述】:编辑仅供参考:如果您打算做类似企业的事情,请不要使用 PayPal REST API。这可能会浪费很多时间。 正如 PayPal 自己提到的 (https://developer.paypal.com/docs/faq/#classic-api-questions) 经典 API 具有更多功能,目前没有计划终止生命周期。
我需要使用新的 API 实现贝宝交易。除了一件事,一切都很好:
在经典 API 中,我可以设置发票编号来引用我的自定义商店编号。当贝宝将钱汇给银行时,该交易具有预期目的,即给定的发票号码。
现在使用 rest api,预期用途字段为空。我没有找到任何钩子如何给出这个发票号码。
例如从贝宝使用这个网站:https://devtools-paypal.com/hateoas/index.html?interactive=OFF&env=sandbox#
我创建这样的付款:
"intent": "sale",
"payer":
"payment_method": "paypal"
,
"transactions": [
"amount":
"currency": "USD",
"total": "110.54"
,
"description": "This is the payment transaction description."
],
"redirect_urls":
"return_url": "http://www.ebay.com",
"cancel_url": "http://www.milo.com"
我想做这样的事情:
"intent": "sale",
"payer":
"payment_method": "paypal"
,
"transactions": [
"amount":
"currency": "USD",
"total": "110.54"
,
"description": "This is the payment transaction description.",
"my_custom_transaction_id" : "shop_transaction_no_234"
],
"redirect_urls":
"return_url": "return_url",
"cancel_url": "cancel_url"
【问题讨论】:
在与 paypal 技术支持人员交谈后:我不应该使用其余的 API -,.- 谢谢,此警告的文档页面....是时候回滚了 他们如何解释他们的答案?为什么不应该使用 Rest API? @antongorodezkiy:他们说 rest api 处于 beta 状态。并非经典 api 的所有功能都已经实现。因此,如果您使用 rest API,您可能无法使用经典做一些事情。用于识别付款的发票 ID 等必不可少的东西 ;-) 【参考方案1】:我能够找到解决方案: 创建付款:
use PayPal\Api\Transaction;
$customvalue = 'shop_transaction_no_234';
$transaction = new Transaction();
$transaction->setCustom($customvalue);
付款完成后,响应如下:
"intent": "sale",
"payer":
"payment_method": "paypal"
,
"transactions": [
"amount":
"currency": "USD",
"total": "110.54"
,
"description": "This is the payment transaction description.",
"custom" : "shop_transaction_no_234"
],
"redirect_urls":
"return_url": "return_url",
"cancel_url": "cancel_url"
补充说明,如果你想从 paypal 响应中获取交易详情,我是这样做的
use PayPal\Api\Payment;
/**
* Get Ids from url
*/
$paymentId = $_GET['paymentId'];
$payerId = $_GET['PayerID'];
/**
* Get payment details and assign to object
*/
$payment = Payment::get($paymentId, $paypal);
$obj = json_decode($payment);
/**
* this script returns the custom value you assigned
*/
$custom = $obj->transactions[0]->custom;
就是这样!希望这对所有人都有用:)
【讨论】:
时间过去和 API 更改。现在paypal的交易对象有更多的领域。你的“习惯”,这不是我想要的。我没有测试它,但我认为强烈建议使用 invoice_number 来存储自定义商店的发票编号以跟踪您的交易。不过谢谢!以上是关于用于银行交易中预期目的的带有自定义发票编号的 PayPal Rest API 付款的主要内容,如果未能解决你的问题,请参考以下文章