我尝试使用PayPal签出并显示产品的逐项列表。我可以让购物车上班显示添加到购物车中的商品数量,但由于它们没有逐项列出,卖家不知道订购了哪些商品。
我使用ngCart购物车。我已经关注了文档,我相信我已经正确配置了所有内容,但是当我点击"结帐"使用逐项PayPal流程,我的购物车在PayPal中为空。我商店中的商品如下:
<div class="row" ng-repeat="product in products">
<div class="col s3 right">
<ngcart-addtocart id="{{product._id}}" name="{{product.title}}" price="{{product.price}}" quantity-max="5" quantity="1">
<i class="material-icons">shopping_cart</i>
</ngcart-addtocart>
</div>
我看了PayPal docs,看起来好像ngCart配置为提供必要的信息。以下是实际结账表单如何提交给PayPal(这是我认为有问题的地方)
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" ng-show="ngCart.getTotalItems()" target="_top">
<input name="cmd" type="hidden" value="_cart"/>
<input type="hidden" name="upload" value="1">
<input name="business" type="hidden" value="storeEmail@gmail.com"/>
<input name="lc" type="hidden" value="CA"/>
<input name="item_name" type="hidden" value="{{ settings.paypal.item_name }}"/>
<input name="item_number" type="hidden" value="{{ settings.paypal.item_number }}"/>
<input name="amount" type="hidden" value="{{ ngCart.getSubTotal()}}"/>
<input name="currency_code" type="hidden" value="{{ settings.paypal.currency_code }}"/>
<input name="button_subtype" type="hidden" value="services"/>
<input name="no_note" type="hidden" value="{{ settings.paypal.no_note }}"/>
<input name="tax_rate" type="hidden" value="{{ ngCart.getTaxRate()}}"/>
<input name="shipping" type="hidden" value="{{ ngCart.getShipping()}}"/>
<input name="image_url" type="hidden" value="http://localhost:1337/images/logo.png"/>
<input name="bn" type="hidden" value="PP-BuyNowBF:btn_buynowCC_LG.gif:NonHostedGuest"/>
<input alt="PayPal - The safer, easier way to pay online!" border="0" name="submit" src="https://www.paypalobjects.com/webstatic/en_US/btn/btn_paynow_cc_144x47.png" type="image"/>
</form>
在阅读PayPal文档后,表单字段(例如item_name)需要保存为item_name_1, item_price_1, item_shipping_1, item_name_2
等等...如果我将值硬编码到表单中然后它可以工作,但是因为我有多个产品我需要这个过程根据ngCart中添加的项目发布,如果这是有意义的。
在PayPal中使用<input name="cmd" type="hidden" value="_xclick"/>
结帐。如您所见,这不是逐项列出的,但总数是正确的,它识别购物车中的项目:
使用<input name="cmd" type="hidden" value="_cart"/>
结帐购物车。这表明购物车是空的:
我希望我对这个问题的描述很清楚。如果没有,请告诉我,我会提供更多信息。谢谢你的帮助。