1、进入“蚂蚁金服开放平台”
2、下载支付宝官方 demo,进行配置和测试
文档地址
demo下载
源码目录结构说明
1. ├─src 2. 3. │ └─com.alipay 4. 5. │ └─config 6. 7. │ ├─AlipayConfig 配置类 8. 9. │ └─util 10. 11. │ ├─logFile 日志类 12. 13. ├─WebContent 14. 15. │ └─META-INF 16. 17. │ └─ wappay 手机网站支付 18. 19. │ ├─close.jsp 统一收单交易关闭接口调试入口页面 20. 21. │ ├─downloadurl.jsp 查询对账单下载地址接口调试入口页面 22. 23. │ ├─ pay.jsp 支付宝手机网站支付接口(alipay.trade.wap.pay)接口调试入口页面 24. 25. │ ├─query.jsp 统一收单线下交易查询调试入口页面 26. 27. │ ├─refund.jsp 统一收单交易退款接口调试入口页面 28. 29. │ ├─ refundquery.jsp 统一收单交易退款查询调试入口页面 30. 31. │ └─ META-INF 32. 33. │ └─ lib 依赖类库 34. 35. │ ├─alipay-sdk-java-3.3.0.jar 36. 37. │ ├─alipay-sdk-java-3.3.0-source.jar 38. 39. │ ├─ commons-logging-1.1.1.jar 40. 41. │ ├─ commons-logging-1.1.1-sources.jar 42. 43. │ ├─index.html 44. 45. │ ├─notify_url.jsp 46. 47. │ ├─ return_url.jsp 48. 49.
AlipayConfig 配置类示例代码
1. package com.alipay.config; 2. 3. public class AlipayConfig { 4. 5. // 商户appid 6. 7. public static String APPID = ""; 8. 9. // 私钥 pkcs8格式的 10. 11. public static String RSA_PRIVATE_KEY = ""; 12. 13. // 服务器异步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 14. 15. public static String notify_url = "http://商户网关地址/alipay.trade.wap.pay-JAVA-UTF-8/notify_url.jsp"; 16. 17. // 页面跳转同步通知页面路径 需http://或者https://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问 商户可以自定义同步跳转地址 18. 19. public static String return_url = "http://商户网关地址/alipay.trade.wap.pay-JAVA-UTF-8/return_url.jsp"; 20. 21. // 请求网关地址 22. 23. public static String URL = "https://openapi.alipay.com/gateway.do"; 24. 25. // 编码 26. 27. public static String CHARSET = "UTF-8"; 28. 29. // 返回格式 30. 31. public static String FORMAT = "json"; 32. 33. // 支付宝公钥 34. 35. public static String ALIPAY_PUBLIC_KEY = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjrEVFMOSiNJXaRNKicQuQdsREraftDA9Tua3WNZwcpeXeh8Wrt+V9JilLqSa7N7sVqwpvv8zWChgXhX/A96hEg97Oxe6GKUmzaZRNh0cZZ88vpkn5tlgL4mH/dhSr3Ip00kvM4rHq9PwuT4k7z1DpZAf1eghK8Q5BgxL88d0X07m9X96Ijd0yMkXArzD7jg+noqfbztEKoH3kPMRJC2w4ByVdweWUT2PwrlATpZZtYLmtDvUKG/sOkNAIKEMg3Rut1oKWpjyYanzDgS7Cg3awr1KPTl9rHCazk15aNYowmYtVabKwbGVToCAGK+qQ1gT3ELhkGnf3+h53fukNqRH+wIDAQAB"; 36. 37. // 日志记录目录定义在 logFile 中 38. 39. public static String log_path = "/log"; 40. 41. // RSA2 42. 43. public static String SIGNTYPE = "RSA2"; 44. 45. }
index.html 说明
1. <div id="main"> 2. <div id="body" style="clear:left"> 3. <dl class="content"> 4. <dt></dt> 5. <dd id="btn-dd"> 6. <span class="new-btn-login-sp"> 7. <button class="new-btn-login" style="text-align:center;" onclick="window.open('./wappay/pay.jsp')">手机网站2.0支付(接口名:alipay.trade.wap.pay)</button> 8. </span> 9. </dd> 10. <dt></dt> 11. <dd id="btn-dd"> 12. <span class="new-btn-login-sp"> 13. <button class="new-btn-login" style="text-align:center;" onclick="window.open('./wappay/query.jsp')">手机网站2.0订单查询 (接口名:alipay.trade.query)</button> 14. </span> 15. </dd> 16. <dt></dt> 17. <dd id="btn-dd"> 18. <span class="new-btn-login-sp"> 19. <button class="new-btn-login" style="text-align:center;" onclick="window.open('./wappay/refund.jsp')">手机网站2.0订单退款 (接口名:alipay.trade.refund)</button> 20. </span> 21. </dd> 22. <dt></dt> 23. <dd id="btn-dd"> 24. <span class="new-btn-login-sp"> 25. <button class="new-btn-login" style="text-align:center;" onclick="window.open('./wappay/refundquery.jsp')">手机网站2.0订单退款查询(接口名:alipay.trade.fastpay.refund.query)</button> 26. </span> 27. </dd> 28. <dt></dt> 29. <dd id="btn-dd"> 30. <span class="new-btn-login-sp"> 31. <button class="new-btn-login" style="text-align:center;" onclick="window.open('./wappay/downloadurl.jsp')">手机网站2.0账单下载(接口名:alipay.data.dataservice.bill.downloadurl.query)</button> 32. </span> 33. </dd> 34. </dl> 35. </div>
3、配置使用沙箱进行测试
1、使用 RSA 工具生成签名
2、下载沙箱版钱包
3、运行官方 demo 进行测试
4、什么是公钥、私钥、加密、签名和验签?
公钥私钥
公钥和私钥是一个相对概念 它们的公私性是相对于生成者来说的。
一对密钥生成后,保存在生成者手里的就是私钥, 生成者发布出去大家用的就是公钥
加密和数字签名
加密是指:
我们使用一对公私钥中的一个密钥来对数据进行加密,而使用另一个密钥来进行解 密的技术。
公钥和私钥都可以用来加密,也都可以用来解密。
但这个加解密必须是一对密钥之间的互相加解密,否则不能成功。
加密的目的是:
为了确保数据传输过程中的不可读性,就是不想让别人看到。
签名:
给我们将要发送的数据,做上一个唯一签名(类似于指纹)
用来互相验证接收方和发送方的身份;
在验证身份的基础上再验证一下传递的数据是否被篡改过。因此使用数字签名可以 用来达到数据的明文传输。
验签
支付宝为了验证请求的数据是否商户本人发的,
商户为了验证响应的数据是否支付宝发的
文章知识点与官方知识档案匹配,可进一步学习相关知识
业务推广/技术交流/商业合作
微信名片