當前位置:生活全書館 >

IT科技

> paypal java

paypal java

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java paypal是什麼,讓我們一起了解一下?

paypal支付的IPN和PDT兩種通知方式,IPN異步通知,可能會有時延,但可靠性高,當接入方主機不可達時,有重試機制保證IPN通知儘量抵達接入方服務器。接入方收到IPN通知後,需要對其確認。

接入方收到IPN通知後,需要對其確認。確認方法為,把接收到的IPN通知原封不動的作為請求體,調用IPN確認接口。PDT通知是是實時的,但可靠性不高,因為只會通知一次,沒有重試機制,一旦接入方出現主機不可達,這樣的消息將會被丟失。官方推薦,IPN通知和PDT通知最好混合使用,以滿足時效性和可靠性的保證。我們採用了IPN和PDT兩種通知機制。

java paypal

paypal流程有如下幾步:

1、創建應用程序

2、啟用與palPal的連接

3、應用評論

4、構建按鈕

5、獲取授權碼

6、獲取訪問令牌

7、為access_token交換refresh_token

8、獲取客户信息

9、測試集成

10、上線

通過springboot環境,java如下:

@Controller@RequestMapping("/paypal")public class PaymentController {    private Logger log = LoggerFactory.getLogger(getClass());     @Autowired    private PaypalService paypalService;     // 回調地址    private static Integer orderId = null;    private static String SUCCESS_URL = "https://www.baidu.com";    private static String FAIL_URL = "http://www.163.com";    private static String CANCEL_URL = "https://www.autohome.com.cn/shenzhen/?pvareaid=1001299";     @RequestMapping(method = RequestMethod.GET)    public String index(){        return "index";    }    /**     * 訂單支付     * @param     * @return     */    @RequestMapping(method = RequestMethod.POST, value = "/payment")    public String payment(HttpServletRequest request, @RequestBody PaymentEx paymentEx){         if (null == paymentEx || null == paymentEx.getOrderId() || null == paymentEx.getOrderAddressEx() || null == paymentEx.getOrderItemExList()) {            return "redirect:" + FAIL_URL;        }        orderId = paymentEx.getOrderId();        SUCCESS_URL = paymentEx.getSuccessUrl();        FAIL_URL = paymentEx.getFailUrl();        CANCEL_URL = paymentEx.getCancelUrl();        // 調用本地 successPay方法        String successUrl = URLUtils.getBaseURl(request) + "/" + "paypal/successPay";        // 調用本地 cancel方法        String cancelUrl = URLUtils.getBaseURl(request) + "/" + "paypal/cancelPay";        try {            Payment payment = paypalService.createPayment(paymentEx, successUrl,cancelUrl);            for(Links links : payment.getLinks()){                if(links.getRel().equals("approval_url")){                    // 客户付款登陸地址                    return "redirect:" + links.getHref();                }            }        } catch (PayPalRESTException e) {            log.error(e.getMessage());            return "redirect:" + FAIL_URL;        }        return "redirect:" + FAIL_URL;    }     /**     * 取消支付     * @return     */    @RequestMapping(method = RequestMethod.GET, value = "/cancelPay")    public String cancelPay(){        return "redirect:" + CANCEL_URL;    }     /**     * 支付成功     * @param paymentId     * @param payerId     * @return     */    @RequestMapping(method = RequestMethod.GET, value = "/successPay")    public String successPay(@RequestParam("paymentId") String paymentId, @RequestParam("PayerID") String payerId){        try {            /**             * 支付             */            Payment payment = paypalService.executePayment(paymentId, payerId);             /**             * 保存支付信息             */            ShopOrderPayment orderPayment = new ShopOrderPayment();            orderPayment.setOrderId(orderId);            // 訂單總價           String total = payment.getTransactions().get(0).getAmount().getTotal();            orderPayment.setAmountPaid(new BigDecimal(total));            // 交易號           String transationId = payment.getTransactions().get(0).getRelatedResources().get(0).getSale().getId();            orderPayment.setTransactionId(transationId);            paypalService.savePayment(orderPayment);             /**             * 支付成功重定向頁面             */            if(payment.getState().equals("approved")){                return "redirect:" + SUCCESS_URL;            }        } catch (PayPalRESTException e) {            log.error(e.getMessage());            return "redirect:" + FAIL_URL;        }        return "redirect:" + FAIL_URL;    }}

標籤: java paypal
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/zh-hk/dianzi/41oe33.html