2013-04-08 35 views
26

Tôi đang thực hiện mới Pay REST API Paypal với phương pháp Paypal có thể được tham chiếu ở đây: https://developer.paypal.com/webapps/developer/docs/integration/web/accept-paypal-payment/Pay với Paypal qua Paypal API REST không hiển thị mô tả thanh toán trên Paypal Sandbox hoặc các trang web sống

Việc thanh toán thực hiện tốt, chính xác theo cách của nó. Người dùng chọn thanh toán bằng Paypal và sau đó được chuyển hướng đến trang web Paypal nơi anh ta dự kiến ​​sẽ đăng nhập và chấp nhận thanh toán. Các dữ liệu JSON mà tôi đang gửi Paypal là khá nhiều những gì được quy định tại các diễn đàn và mỏ trông như thế này:

{ 
    "intent":"sale", 
    "redirect_urls":{ 
    "return_url":"http://<return URL here>", 
    "cancel_url":"http://<cancel URL here>" 
    }, 
    "payer":{ 
    "payment_method":"paypal" 
    }, 
    "transactions":[ 
    { 
     "amount":{ 
     "total":"7.47", 
     "currency":"USD" 
     }, 
     "description":"This is the payment description." 
    } 
    ] 

}

Vì nó chuyển hướng người dùng đến trang web paypal, mô tả và tổng số cột được hiển thị trống

Tôi không chắc liệu đây có phải là sai lầm trên REST API của Paypal hay không. Tôi tin rằng tôi đang cung cấp mô tả cần thiết + số tiền thanh toán được phản ánh trên trang này. Nếu thông tin này không được hiển thị, nó thường là ngăn cản người dùng vì họ chắc chắn muốn xem số tiền họ đang trả trên trang web Paypal mặc dù số tiền này được liệt kê trên trang web của tôi.

Đây là những gì nó trông giống như:

enter image description here

Đối với những người muốn chỉ ra rằng người dùng đã không đăng nhập, tốt, thậm chí sau khi đăng nhập, mô tả và cột mua hiện nay vẫn chỗ trống.

Tôi có thiếu bất kỳ thông số nào cần gửi đến Paypal để chỉ ra dữ liệu mô tả này không?

Lưu ý: Sự cố này vẫn tiếp diễn cho cả máy chủ trực tiếp và hộp cát.

Trả lời

41

Pan tay trái ở trang trên hiển thị: 1. Chi tiết mặt hàng từ đơn hàng. Bạn có thể bao gồm danh sách mục như là một phần của chi tiết giao dịch trong tài nguyên thanh toán. Điều tương tự sẽ được hiển thị ở đây. 2. Các thành phần của số tiền giao dịch, ví dụ: số tiền giao hàng, thuế, v.v. nếu bạn bao gồm chúng theo yêu cầu.

Hãy thử yêu cầu này để xem ví dụ:

{ 
    "intent": "sale", 
    "payer": { 
     "payment_method": "paypal" 
    }, 
    "redirect_urls": { 
     "return_url": "http://<return url>", 
     "cancel_url": "http://<cancle url>" 
    }, 
    "transactions": [ 
     { 
      "amount": { 
       "total": "8.00", 
       "currency": "USD", 
       "details": { 
        "subtotal": "6.00", 
        "tax": "1.00", 
        "shipping": "1.00" 
       } 
      }, 
      "description": "This is payment description.", 
      "item_list": { 
       "items":[ 
        { 
         "quantity":"3", 
         "name":"Hat", 
         "price":"2.00", 
         "sku":"product12345", 
         "currency":"USD" 
        } 
       ] 
      } 
     } 
    ] 
} 
+1

Cảm ơn bạn. Paypal còn lại api vẫn còn trong phiên bản beta và cần viết lại tài liệu nghiêm túc. Cảm ơn bạn btw. –

+0

Xin chào Deepesh, tôi đang sử dụng paypal với phiên bản 1.4.3.Nhưng tôi không có bất kỳ phương pháp nào để gửi chi tiết mặt hàng. Vui lòng giúp tôi. – Madhu

+0

Tôi không tin danh sách mặt hàng hoặc danh sách giao dịch hiện được hỗ trợ bởi api còn lại. – YorkshireKev

-1

Cảm ơn bạn. Madhu nhớ sử dụng thư viện còn lại!

Details amountDetails = new Details(); 
        amountDetails.setSubtotal(autoregistro.getPedido().getItems().get(0).getTotal().toPlainString()); 
        amountDetails.setTax("0"); 
        amountDetails.setShipping("0"); 

        Amount amount = new Amount(); 
        amount.setCurrency("USD"); 
        amount.setTotal(autoregistro.getPedido().getItems().get(0).getTotal().toPlainString()); 
        // amount.setTotal("7.47"); // Los decimales deben ser con punto 
        amount.setDetails(amountDetails); 

        Item item = new Item(); 
        item.setCurrency("USD"); 
        item.setQuantity("1"); 
        item.setName(autoregistro.getPedido().getItems().get(0).getDescripcion()); 
        item.setPrice(amountDetails.getSubtotal()); 

        List<Item> items = new ArrayList<Item>(); 
        items.add(item); 

        ItemList itemList = new ItemList(); 
        itemList.setItems(items); 

        Transaction transaction = new Transaction(); 
        transaction.setDescription(item.getName()); 
        transaction.setAmount(amount); 
        transaction.setItemList(itemList); 

        List<Transaction> transactions = new ArrayList<Transaction>(); 
        transactions.add(transaction); 

        Payer payer = new Payer(); 
        payer.setPaymentMethod("paypal"); 
        // payer.setPaymentMethod("credit_card"); 

        Payment payment = new Payment(); 
        payment.setIntent("sale"); 
        payment.setPayer(payer); 
        payment.setTransactions(transactions); 
        RedirectUrls redirectUrls = new RedirectUrls(); 
        redirectUrls.setCancelUrl(this.configParameters.getAutoregistroURL() + "/pay_paypal?cancel=true"); 
        redirectUrls.setReturnUrl(this.configParameters.getAutoregistroURL() + "/pay_paypal?success=true"); 
        payment.setRedirectUrls(redirectUrls); 

        Payment createdPayment = payment.create(apiContext); 
+6

Vui lòng cung cấp giải thích tốt hơn để đi cùng với mã của bạn. – bwegs

Các vấn đề liên quan