cuốn sách gpt4 ai đã làm

java - Play! Khung xử lý thanh toán (thương mại điện tử/Paypal)

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 03:42:14 28 4
mua khóa gpt4 Nike

Tôi muốn xây dựng một ứng dụng nơi người dùng có thể mua sản phẩm từ trang web của tôi. Giao dịch mua sẽ bao gồm mặt hàng thực tế mà họ đang mua, phí vận chuyển, thuế (nếu có), v.v. Tôi biết PayPal có nhiều tùy chọn thanh toán, một trong số đó là dịch vụ web và tùy chọn còn lại chỉ chuyển hướng đến trang web của họ. Tôi muốn trải nghiệm người dùng liền mạch nhất có thể, nhưng tôi không muốn tham gia vào công việc lưu trữ thẻ tín dụng, v.v.

Nếu tôi xử lý các giao dịch trên máy chủ của mình (sử dụng kết nối an toàn/SSL), tôi có gặp rủi ro khi chuyển thông tin thẻ tín dụng đến dịch vụ của họ để xử lý không?

câu trả lời hay nhất

Chúc bạn vui vẻ! Framework v1.2 hỗ trợ tuyệt vời cho WebServices. Play không có mô-đun paypal nhưng việc viết mã không phức tạp. Tôi đã triển khai giải pháp dịch vụ web cho trang web tuyển dụng của chúng tôi (www.express-board.fr) trong 3 ngày.

Đầu tiên: người dùng luôn được chuyển hướng đến trang web Paypal. Không có giải pháp nào cho khách hàng paypal. Nếu bạn chọn giải pháp dịch vụ web (developer.paypal.com), bạn có thể tùy chỉnh trang web paypal bằng logo của mình. Không phải là giải pháp tốt nhất, nhưng nó hoạt động.

Về phía Play, đây là mã mẫu cho phương thức thanh toán bằng Dịch vụ web Paypal:

 kiểm tra khoảng trống tĩnh công khai () {
Số tiền gấp đôi = Double.parseDouble(session.get("amount"));
UserId dài = Long.parseLong(session.get("user-id"));
Người dùng người dùng = User.findById(userId);
nếu (người dùng != null) {
renderArgs.put("người dùng", người dùng);
}

// chúng tôi tính toán số tiền ròng và tổng cộng với VAT của Pháp (19,6%)
Số tiền BigDecimalBD = BigDecimal mới (số tiền * 1,196);
BigDecimal netAmountBD = BigDecimal mới(số tiền);
BigDecimal taxAmountBD = số tiềnBD.subtract(netAmountBD);

Chuỗi netAmount = netAmountBD.setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
Chuỗi TotalAmount = moneyBD.setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();
Chuỗi taxAmount = taxAmountBD.setScale(2, BigDecimal.ROUND_HALF_EVEN).toString();

Chuỗi chủ đề="Ấn bản d'une offre d'emploi";


// Lệnh gọi lại dịch vụ web Paypal được thực hiện bởi Play!
// Tôi có thuộc tính cấu hình paypal.api.server với máy chủ prod và sandbox

WS.HttpResponse res = WS.url(Play.configuration.get("paypal.api.server").toString() +
"&NGƯỜI DÙNG=%s" +
"&PWD=%s" +
"&CHỮ KÝ=%s" +
"&VERSION=%s" +
"&PHƯƠNG PHÁP=%s" +
"&PAYMENTREQUEST_0_PAYMENTACTION=%s" +
"&LANDINGPAGE=%s" +
"&SOLUTIONTYPE=%s" +
"&EMAIL=%s" +
"&FIRSTNAME=%s" +
"&LASTNAME=%s" +
"&ĐƯỜNG=%s" +
"&STREET2=%s" +
"&THÀNH PHỐ=%s" +
"&ZIP=%s" +
"&STATE=%s" +
"&PAYMENTREQUEST_0_CURRENCYCODE=%s" +
"&MAXAMT=%s" +
"&PAYMENTREQUEST_0_AMT=%s" +
"&PAYMENTREQUEST_0_ITEMAMT=%s" +
"&PAYMENTREQUEST_0_TAXAMT=%s" +
"&PAYMENTREQUEST_0_DESC=%s" +
"&L_PAYMENTREQUEST_0_NAME0=%s" +
"&L_PAYMENTREQUEST_0_NUMER0=%s" +
"&L_PAYMENTREQUEST_0_DESC0=%s" +
"&L_PAYMENTREQUEST_0_AMT0=%s" +
"&L_PAYMENTREQUEST_0_QTY0=%s" +

"&NOSHIPPING=%s" +
"&LOCALECODE=%s" +
"&RETURNURL=%s" +
"&CANCELURL=%s" +
"&ADDROVERRIDE=%s" +
"&BRANDNAME=%s"
,
//-------
Play.configuration.get("paypal.api.username").toString(),
Play.configuration.get("paypal.api.password").toString(),
Play.configuration.get("paypal.api.signature").toString(),
"69.0", // Phiên bản API
"SetExpressCheckout", //Phương thức
"Doanh thu",
"Thanh toán",
"Duy nhất",
người dùng.email,
"" + tên người dùng.fullname,
"" + tên người dùng.fullname,
"" + user.postalAddress,
"" + user.postalAddress2,
"" + user.city,
"" + user.zip,
"Không có",
"EUR",
tổng số tiền, //MaxAMT
totalAmount, //amount.toString()
netAmount, //PAYMENTREQUEST_n_ITEMAMT
taxAmount,
subject,
//---------
"Item name",
"1",
subject,
netAmount,
"1",
//---------
"1",
"FR",
Play.configuration.get("paypal.returnUrl").toString(),
Play.configuration.get("paypal.cancelPay").toString(),
"1", //ADDROVERRIDE
"eXpress-Board pour Innoteria"
).get();


String message = res.getString();
PaypalResponse paypalResponse = new PaypalResponse(message);
if (paypalResponse.isSuccess()) {
Payment payment = new Payment();
payment.userId = user.id;
payment.totalAmount = totalAmount;
payment.netAmount = netAmount;
payment.taxAmount = taxAmount;
payment.token = paypalResponse.getToken();
payment.correlationID = paypalResponse.getCorrelationID();
payment.save();

redirect(Play.configuration.get("paypal.api.http").toString() + "/cgi-bin/webscr?cmd=_express-checkout&token=" + paypalResponse.getToken());
}

Logger.error("Error on SetExpressCheckout with: ");
for (String tokens : message.split("&")) {
thử {
Logger.error(URLDecoder.decode(tokens, "UTF-8"));
} catch (UnsupportedEncodingException e) {
}
}

error("Error from Paypal");

}

Hy vọng nó sẽ giúp bạn

关于java - 玩!框架支付处理(电子商务/ Paypal ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9982894/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress