1、面对面支付分为:条码支付、正向扫码(商户静态二维码)、正向扫码(商户动态二维码)

2、文件名:AlipayNotify.jsp(信息回调接收页面)、InStorePay.html/jsp(条码支付)、MerchantQR.html/jsp(静态二维码)、TransactionQR.html/jsp(动态二维码)、query.html/jsp(查询交易信息)、refund.html/jsp(交易退款)、cancel.java(撤销交易)、CheckQuery.java(ajax 查询交易)、Method.java(生成请求数据,生成请求连接、请求支付宝服务器、查询逻辑、撤销逻辑)、web.xml(配置ajax 关联到CheckQuery.java)

3、境外的支付宝支付,数据签名是用MD5签名的,支付宝不提供相关jar包

4、境外支付宝使用MD5的密钥,这个跟境内的不一样,还有就是旧版接口和新版接口用的密钥是不同的两条(境内同理)

5、网关地址:测试环境为:https://openapi.alipaydev.com/gateway.do?

正式环境为:https://intlmapi.alipay.com/gateway.do? (具体以官网集成文档为准)

境外的代码比较容易,具体如下:

try{
System.out.println("");
System.out.println("********InStorepay start********");
out.println("<a href =\"index.html\"></a>");
int cancelcounter = 0;
SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
String orderId = date.format(new Date());
String key = properties.key;
String buyer_identity_code = request.getParameter("buyer_identity_code");
String biz_product = properties.biz_product;
String partner = properties.PID;
String alipay_seller_id = partner;
String trans_amount = request.getParameter("trans_amount");
String _input_charset = properties.input_charset;
String service = properties.f2f_service;
String partner_trans_id = orderId;
String currency = request.getParameter("currency");
String identity_code_type = properties.identity_code_type;
String trans_create_time = orderId;
String sign_type = properties.sign_type;
String trans_name = request.getParameter("trans_name");
String secondary_merchant_name = properties.secondary_merchant_name;//the name u decide
String secondary_merchant_id = properties.secondary_merchant_id;//the id u decide
String secondary_merchant_industry = properties.secondary_merchant_industry;//check-> MCC code Alipay merchant onboarding form 20161021.xlsx
String extend_info = "{'secondary_merchant_name':'"+secondary_merchant_name+"','secondary_merchant_id':'"+secondary_merchant_id+"','secondary_merchant_industry':'"+secondary_merchant_industry+"'}";
String sign = "";Map<String, String> para = new HashMap<String, String>();
para.put("alipay_seller_id", alipay_seller_id);
para.put("biz_product", biz_product);
para.put("buyer_identity_code", buyer_identity_code);
para.put("currency", currency);
para.put("extend_info", extend_info);
para.put("identity_code_type", identity_code_type);
para.put("partner", partner);
para.put("partner_trans_id", partner_trans_id);
para.put("service", service);
para.put("sign_type", sign_type);
para.put("trans_amount", trans_amount);
para.put("trans_create_time", trans_create_time);
para.put("trans_name", trans_name);
para.put("_input_charset", _input_charset);String sUrlText = Method.buildRequest(para,"get","确认");
//System.out.println(sUrlText);String res = Method.requestAlipay(sUrlText);
//System.out.println(res);Map data = Method.doXMLParse(res);
System.out.println("*****data:"+data);
String isSuccess = data.get("is_success").toString();
String old_sign = data.get("sign").toString();Map data_rp = Method.doXMLParse("<xml>"+data.get("response").toString()+"</xml>");
Map alipay = Method.doXMLParse("<xml>"+data_rp.get("alipay").toString()+"</xml>");
JSONObject json = new JSONObject(alipay);
//System.out.println("alipay:"+alipay);String request_rs = data.get("request").toString();System.out.println(request_rs);

可以看出,容易出错的是extend_info,里面的字符串需要以 {'key':'value','key2':'value2'} 形式来传递到下一步,key和value都需要用单引号包着,这里是跟境内不一样的

然后看生成请求参数,使用Method.buildRequest方法,把请求的数据组合成一条链接就好了,如:https://intlmapi.alipay.com/gateway.do?key=value&key=value&key=value,然后用URLConnection发出去就可以等反馈数据了,退款、撤销等操作的逻辑一样,注意参数就好了,还有注意对返回结果验证签名是,要把值为空的键值对去掉

支付宝demo链接:http://download.csdn.net/download/qq_22778717/10231371

支付宝面对面支付(境外)相关推荐

  1. 基于thinkphp5.0和支付宝面对面扫码支付DEMO制作的扫码支付

    ​ 基于thinkphp5.0和支付宝面对面扫码支付DEMO制作的扫码支付 今天接口申请下来,下载了官方demo对着调试了一天,终于实现想要的功能,先看图 选择支付宝支付 跳出二维码弹窗 手机支付宝进 ...

  2. 支付宝wap支付详情

    背景: 互联网时代下的移动支付打破了传统支付对于时空的限制,使用户可以随时随地进行支付活动.传统支付以现金支付为主,需要用户与商户之间面对面支付,因此,对支付时间和地点都有很大的限制:移动支付以手机支 ...

  3. 集成支付宝钱包支付iOS SDK的方法与经验

    没想到,支付宝的SDK是我目前用过的所有第三方SDK中最难用的一个了. 下载 首先,你要想找到这个SDK,都得费点功夫.现在的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 "请点此 ...

  4. 支付宝钱包支付iOS SDK的方法

    为什么80%的码农都做不了架构师?>>>    文档 压缩包里有两个相关文档 : <支付宝钱包支付接口开发包2.0标准版.pdf> <支付宝钱包支付接口开发包2.0 ...

  5. 支付宝sdk 支付订单查询失败

    最近遇到了一些问题,厂商给我们反馈了一个问题,就是支付宝支付成功之后,旋转屏幕,订单查询失败.后来我怀疑是支付宝的问题,想都不用想是支付宝的问题. 但是自己根本你无法复现,因为我发现支付宝支付完成之后 ...

  6. 支付宝 APP支付(证书)方式遇到的问题和解决办法

    支付宝 APP支付(证书)方式遇到的问题和解决办法 参考文章: (1)支付宝 APP支付(证书)方式遇到的问题和解决办法 (2)https://www.cnblogs.com/fubing/p/121 ...

  7. python支付程序源码_python项目中实现支付宝网页支付

    支付流程 在一次项目中需要引入支付宝接口实现支付宝支付,使用场景如下: 用户在我方商户系统中选择了购买商品,我方商户系统生成一张支付订单,用户点击订单的支付按钮后,页面会跳转到一个支付二维码的界面. ...

  8. H5网站接入支付宝的支付接口

    写本文章的目的是为了记录工作中遇到的问题,方便以后遇到可以迅速解决问题 H5手机网站接入支付宝的支付接口,推荐使用支付宝提供的SDK来快速开发 我使用的是SDK开发 引用命名空间 using Aop. ...

  9. 支付宝app支付对接2(文档和对接注意问题)

    2019独角兽企业重金招聘Python工程师标准>>> 一.各个接口的位置. 通过文档,https://docs.open.alipay.com/204/105051 可以看到支付的 ...

最新文章

  1. 设置commit 提交模板
  2. oracle手工快照,创建oracle快照的步骤
  3. (理论篇)从基础文件IO说起虚拟内存,内存文件映射,零拷贝
  4. AutoMl 的pytorch类似代码
  5. windows server 守护进程nssm
  6. 记录一个粗心所导致的bug
  7. kotlin 从Helloword 开始
  8. 检查IP的shell
  9. 三维空间长度温度数量_风电叶片模具水循环温度控制机及其智能化控制解析
  10. 设计模式三大类及六大设计原则
  11. python sklearn库 rnn_如何使用Tensorflow计算RNN和LSTM模型的AUC并生成ROC曲线?
  12. TCP/IP协议简介
  13. CentOS7.6下设置mysql服务开机启动
  14. docker下的Mysql镜像的使用方法
  15. java期末考试工程项目_java web 期末项目实验源码20套,自用学习非常不错!
  16. 《房地产周期》pdf、mobi、epub、txt下载
  17. AJDK-Wisp协程
  18. 基于Python的A-Priori算法发现购物篮关联规则
  19. Revit二开之管道翻弯
  20. Android JetPack底部导航Navigation 组件的介绍与使用

热门文章

  1. PERL-5.26.1安装教程(LINUX系统)
  2. 决策树---红酒分类
  3. Educational Codeforces Round 40千名记
  4. 如何解决网站首页老是被篡改经常反复被篡改
  5. PHP图片打包压缩下载
  6. PHP小程序码扫码登录网站,微信扫小程序码实现网页端登录
  7. fowin自动交易和量化交易和合约交易
  8. mybatis-plus使用注意事项
  9. Tensorflow学习笔记——Summary用法
  10. 将扣出的章加入wps里面