




已阅读5页,还剩1页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验四 支付宝支付接口开发分析【实验目的】了解和熟悉支付宝支付接口程序开发,分析其处理流程。【实验要求】阅读并分析给出的支付宝支付接口程序,画出处理流程图,并回答实验思考题。【实验内容与步骤】1、仔细阅读后面给出的支付宝支付接口程序;2、根据支付宝支付接口程序,画出相应的处理流程图;3、回答实验思考题。【实验结果】 画出支付宝支付接口程序的处理流程图。【实验思考题】假设你是一家电子商务网站的经营者,你准备如何将支付宝支付接口程序嵌入你的网站,以实现向客户提供支付功能?请给出你的步骤。附:支付宝支付接口程序一、如何调用支付宝接口?(将客户的订单信息按照既定的规则生成一个url跳转到支付宝网站)通过下面的方法makeOrderAlipayUrl(HttpServletRequest httpRequest, Orderorder)的调用得到支付宝的url,然后进行跳转(response.sendRedirect(url);): /* 根据订单生成支付宝接口URL* param httpRequest* param order 订单实例* return* throws Exception */ Public static String makeOrderAlipayUrl(HttpServletRequest httpRequest, Order order) throws Exception HashMap hm = new HashHap();hm. put(“_input_charset”, httpRequest.getCharacterEncoding(); /采用相同的编码方式 hm.put(“body”, “你在上的订单”); /填写在跳到支付宝页面上显示的付款内容信息 hm.put(“discount”, “-5”); /填写折扣信息,-5表示抵扣5元 hm.put(“logistics_fee”, “10”); /物流费用 hm.put(“logistics_payment”, “BUYER_PAY”); /物流费用支付人,BUYER_PAY = 买家支付物流费用 hm.put(“logistics_type”, “EXPRESS”); /物流方式hm.put(“notify_url”, “/notifyurl.jsp”); /客户付款后,支付宝调用的页面hm.put(“out_trade_no”, “order.getId(); /外部交易号,最好具有唯一性,在获取支付宝发来的付款信息时使用 hm.put(“partner”, partnerId); /partnerId(合作伙伴ID)hm.put(“agent”, partnerId); /partnerId(合作伙伴ID) hm.put(“payment_type”, “1”); /支付类型,l = 商品购买,2 = 服务购买, hm.put(“price”, “105.30”); /订单金额信息 hm.put(“quantity”, “1”); /订单商品数量,一般都写1,即按照整个订单包来计算hm.put(“return_url”, “/ReturnUrl.jsp”); /客户付款成功后,显示给客户的页面 hm.put(“seller_email”, “”); /你的支付宝账户E-mailhm.put(“service”, “create_direct_pay_by_user”); /create_direct_pay by_user = 直接付款,trade_create_by_buyer = 担保付款 hm.put(“subject”, “的订单”); /填写跳到支付宝页面上后显示的付款标题信息 String payGateway = “/cooperate/gateway.do?”; /跳转到支付宝的url头return makeUrl(hm, securityCode, httpRequest.getCharacterEncoding(), payGateway); /securityCode(安全码) /* * 根据传入的参数生成alipay的支付URL * param hm 参数值 * param securityCode 安全码 * param charset 编码 * param payGateway 支付宝 gateway * return */ Public static String makeUrl(HashMap hm, String securityCode, String charset, String payGateway) throws Exception List keys = new ArrayList(hm.keySet(); Collections.sort(keys); /支付宝要求参数必须按字母排序 StringBuffer content = new StringBuffer(); For (int i = 0; i keys.size(); i+) content.append(String) keys.get(i);content.append(“=”); content.append(String) hm.get(String) keys.get(i);if (i != keys.size() - 1) content.append(“&”); Content.append(securityCode); String Sign = md5(content.toString(), charset); content.delete(0, content.1ength(); content.append(payGateway); for (int i = 0; i keys.size(); i+) content.append(keys.get(i); content.append(“=”); content.append(URLEncoder.encode(String) hm.get(keys.get(i), charset); content.append(“&”); content.append(“sign=”);content.append(sign);content.append(“&sign_type=MD5”);keys.clear();keys = null;return content.toString();/* 生成md5编码字符串* param str 源字符串* param charset 编码方式* return*/Public static String md5(String str, String charset) if (str = null) return null;char hexdigits = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f;MessageDigest md5MesageDigest = null;byte md5Bytes = null;char md5Chars = null;byte strBytes = null;try strBytes = str.getbytes(charset); md5MessageDigest = MessageDigest.getInstance(“MD5”); md5MessageDigest.update(strBytes); md5Bytes = md5MessageDigest.digest (); int j = md5Bytes.length; md5Chars = new char j*2; int k = 0; for (int i = 0; i 4 & 0xf; md5Charsk+ = hexDigests md5Byte & 0xf; return new String(md5Chars); catch (NoSuchAlgorithmException e) /Log.output(e.toString(), Log.STD_ERR); return null; catch (UnsupportedEncodingException e) /Log.output(e.toString(), Log.STD_ERR); return null; finally md5MessageDigest = null; strBytes = null; md5Bytes = null; 当客户通过接口url付款后,支付宝会自动去调用前面提供的notify_url参数中的url。二、支付宝将付款信息返回给系统当客户付款后,支付宝就会自动调用上面表单提供的notify_url,下面是一个notifyurl.jsp的一个例子: 如果确认收到支付宝发来的客户付款信息,则返回“success”,这样支付宝就知道系统已经收到信息了;否则返回“fail”,这样支付宝会过一段时间后再次发来。只有当支付宝收到“success”的返回信息后才会停止发送付款信息,否则会自动地每隔一段时间就调用上面的notify_url通信接口。三、系统处理支付宝发来的付款信息 /* Created on 2005-6-12* Author stephen* Email zhoujianqiang AT gmail DOT com* CopyRight (C) 2005-2008, all rights reserved. */package com.soft4j;import java.sql.Connection;import java.sql.SQLException;import java.util.Enumeration;import java.util.Vector;import javax.servlet.http.httpservletRequest; /* 支付宝付款通知接口。* author stephen* version 1.0.0 */Public final class NotifyUrlMgr Public static String insert(HttpServletRequest httpRequest) /定义变量和进行必要的初始化工作Enumeration parameterNames = null;String parameterName = null;String parameterValue = null;int count = 0;Vector params = null;Vector vParameterName = new Vector();Vector vParameterValue = new Vector();try String orderId = httpRequest.getParameter(“out_trade_no”); /订单号if (orderId = null | “”.equals(orderId) orderId = “-1”;parameterNames = httpRequest.getParameterNames();boolean isPrint = false;while (parameterNames.hasMoreElements() /循环收取支付宝发来的所有参数信息parameterName = (String)parameterNames.nextElement();parameterValue = httpRequest.getParameter(parameterName);if (parameterValue =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年事业单位工勤技能-江苏-江苏电工二级(技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-新疆-新疆计算机操作员四级(中级工)历年参考题库含答案解析(5套)
- 2025年事业单位工勤技能-广西-广西工程测量工一级(高级技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东水工闸门运行工五级(初级工)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东印刷工二级(技师)历年参考题库典型考点含答案解析
- 2025年事业单位工勤技能-广东-广东中式烹调师一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽图书资料员一级(高级技师)历年参考题库典型考点含答案解析
- 2025年银行金融类-银行招聘-全国银行招聘历年参考题库含答案解析(5套)
- 2025年银行金融类-金融考试-证券业从业人员历年参考题库含答案解析(5套)
- 2025年职业技能鉴定-轻烃装置操作工-轻烃装置操作工(初级)历年参考题库含答案解析(5套)
- 煤矿联网课题题目及答案
- 2025至2030中国安保服务市场现状动态与前景方向分析报告
- 2025内蒙古巴彦淖尔市能源(集团)有限公司招聘48人笔试参考题库附带答案详解析集合
- 林科院面试题库及答案
- T/CSIQ 8014.1-2018组串式光伏逆变器技术规范第1部分:总则
- T/CASTEM 1007-2022技术经理人能力评价规范
- 固体废物的处理与处置-固体废物的最终处置技术
- 先天性甲状腺功能减退症诊治指南(2025)解读
- 学会真学习拒绝假努力!课件-2026届高三下学期三模阶段性班会
- 2025-2030年中国保暖内衣品牌市场动态及发展竞争力研究报告
- 职业技术学院《农业物联网》课程标准
评论
0/150
提交评论