gpt4 book ai didi

java - 使用多种产品创建 Paypal 立即购买按钮(java sdk)

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:26 24 4
gpt4 key购买 nike

我在使用 Java paypal-sdk 创建 PayPal“立即购买”按钮时遇到困难。单品似乎还行。我希望该按钮可以转到包含产品价格、描述和商品编号的结帐页面,并且不可编辑。这是我的代码。首先,我创建了我的按钮变量数组。 (这段代码是在 Groovy 中截取的)

List<String> buttonVarList = new ArrayList<String>()    
int count = 1
int size = priceMap.size()
double totalPrice = 0.0

for (Map.Entry<String, PriceInfo> entry : priceMap.entrySet())
{
String skuKey = entry.getKey()
PriceInfo priceInfo = entry.getValue()

String itemNum = (size > 1) ? "_" + String.valueOf(count) + "=" : "="
Product product = Product.findByProductCode(skuKey)
buttonVarList.add("item_name" + itemNum + product.productName)
buttonVarList.add("item_number" + itemNum + skuKey)
buttonVarList.add("amount" + itemNum + priceInfo.unitPrice)
buttonVarList.add("quantity" + itemNum + priceInfo.qty)
totalPrice += priceInfo.totalPrice
count++
}

buttonVarList.add("currency_code=" + currency)
buttonVarList.add("business=" + grailsApplication.config.grails.paypal.email)
buttonVarList.add("subtotal=" + totalPrice)
buttonVarList.add("notify_url=" + grailsApplication.config.grails.paypal.notifyPaypal)
buttonVarList.add("return=" + grailsApplication.config.grails.paypal.successPaypal)
buttonVarList.add("cancel_return=" + grailsApplication.config.grails.paypal.cancelPaypal)
Payment payment = createTransaction(null, priceMap, request.getRemoteAddr(), "PAYPAL")
buttonVarList.add("transactionId=" + payment.transactionId)
buttonVarList.add("buyerId=" + payment.buyerId)
return paypalApi.createButton(buttonVarList)

创建按钮变量列表后,我创建了加密按钮。

BMCreateButtonRequestType requestType = new BMCreateButtonRequestType();
requestType.setButtonType(ButtonTypeType.fromValue("BUYNOW"));
requestType.setButtonCode(ButtonCodeType.fromValue("ENCRYPTED"));
requestType.setButtonLanguage("en");
requestType.setButtonVar(buttonVarList);

使用 BUYNOW 作为按钮类型,该按钮适用于单个产品,但对于多个产品(item_name_1、item_name_2 变量等),它似乎无法识别产品并且结帐页面具有可编辑的价格和描述。从文档中我可以看出这很可能是因为它无法识别其他产品“如果省略此变量,买家会看到一个他们可以在其中输入商品名称的字段。”

我也尝试过使用 CART 按钮类型,它适用于单个产品,但对于多个产品返回错误 11929“购物车按钮必须指定项目名称和数量。”

这是在结账车中指定多个产品的正确方法吗?我觉得我一定错过了一些简单的东西。感谢您的帮助。

编辑 1:

我尝试添加带有未加密购物车按钮的购物车上传选项“upload=1”。如果我然后从代码中的项目按钮 vars 中删除下划线,然后手动将它们重新添加到生成的按钮(并删除 add=1 上传似乎没有覆盖..)它似乎工作。我显然不能这样做,因为我需要加密按钮..但至少我可以看到有一种方法可以让它工作。或许我应该放弃 Paypal Java Button Manager API?

最佳答案

这个 API 的文档看起来非常困惑,但我认为 PayPal BuyNow 按钮,无论您如何生成它们,都是为单件商品购买而设计的——这就是它们的全部意义:

https://www.paypal.com/bm/cgi-bin/webscr?cmd=_singleitem-intro-outside

即使有添加到购物车按钮 - 其意图仍然是您要添加到购物车的单个商品:

https://www.paypal.com/bm/cgi-bin/webscr?cmd=_shoppingcart-intro-outside

然后您会转到您的购物车并在那里完成购买 - 但添加到购物车和立即购买在我看来都是为单件商品设计的。一旦您到达购物车 - 那么您将处理多个项目。

关于java - 使用多种产品创建 Paypal 立即购买按钮(java sdk),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40513091/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com