钉钉微应用调用支付宝JSAPI进行支付

前提:已入驻钉钉并创建微应用,已入驻支付宝商户平台并签约相关支付能力。

1、在dd.config()中鉴权

使用说明:
钉钉集成了支付宝移动支付SDK并对支付SDK的接口做了JS形式的包装,开发者可以使用该接口唤起支付宝或者支付宝SDK内置的支付页面完成支付功能。
该接口只是对支付宝移动支付SDK的支付接口做了JS形式的封装,支付流程的打通还需要开发者根据支付宝相关文档完成。

 dd.config({"agentId" : _config.agentid,"corpId" : _config.corpId,"timeStamp" : _config.timeStamp,"nonceStr" : _config.nonceStr,"signature" : _config.signature,"jsApiList" : ['biz.alipay.pay'//支付接口(需要鉴权)]});//将支付jsapi放入dd.ready方法中执行dd.biz.alipay.pay({info: 'xxxx', // 订单信息onSuccess: function (result) {//支付完成后回执行logger.i(JSON.stringify(result));},onFail: function (err) {}logger.i(JSON.stringify(err));});

info这个参数根据支付宝文档分为新版和旧版,具体请看支付宝请求参数说明。钉钉文档中链接到支付宝的请求参数实例为旧版的请求参数。

var info = 'partner="2088101568358171"&seller_id="xxx@alipay.com"&out_trade_no="0819145412-6177"&subject="测试"&body="测试测试"&total_fee="0.01"&notify_url="http://notify.msp.hk/notify.htm"&service="mobile.securitypay.pay"&payment_type="1"&_input_charset="utf-8"&it_b_pay="30m"&sign="lBBK%2F0w5LOajrMrji7DUgEqNjIhQbidR13GovA5r3TgIbNqv231yC1NksLdw%2Ba3JnfHXoXuet6XNNHtn7VE%2BeCoRO1O%2BR1KugLrQEZMtG5jmJIe2pbjm%2F3kb%2FuGkpG%2BwYQYI51%2BhA3YBbvZHVQBYveBqK%2Bh8mUyb7GM1HxWs9k4%3D"&sign_type="RSA"'

2.下载支付宝官网提供的SDK,进行相关配置

请下载4.4.5.ALL及以上版本的SDK
AlipayConfig.java

 // 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号public static String app_id = "";// 商户私钥,您的PKCS8格式RSA2私钥public static String merchant_private_key = "";// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。public static String alipay_public_key = "";// 服务器异步通知页面路径  需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问public static String notify_url = "";// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问public static String return_url = "";// 签名方式public static String sign_type = "RSA2";// 字符编码格式public static String charset = "utf-8";// 支付宝网关public static String gatewayUrl = "https://openapi.alipay.com/gateway.do";

AlipayDemo.java

 AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl,AlipayConfig.app_id,AlipayConfig.merchant_private_key,"json","utf-8",AlipayConfig.alipay_public_key,"RSA2");AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();//SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();model.setBody("我是测试数据");model.setSubject("App支付测试Java");model.setOutTradeNo("1234567890");model.setTimeoutExpress("30m");model.setTotalAmount("0.01");model.setProductCode("QUICK_MSECURITY_PAY");request.setBizModel(model);request.setNotifyUrl("商户外网可以访问的异步地址");try {//这里和普通的接口调用不同,使用的是sdkExecuteAlipayTradeAppPayResponse response = alipayClient.sdkExecute(request);System.out.println(response.getBody());} catch (AlipayApiException e) {e.printStackTrace();}

response.getBody() 这个参数就是支付宝的请求参数(新)。
示例:

var info = 'alipay_sdk=alipay-sdk-java-4.5.0.ALL&app_id=20xxxxxx301&biz_content=%7B%22body%22%3A%22%E6%88%91%E6%98%AF%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%22%2C%22out_trade_no%22%3A%221234567890%22%2C%22product_code%22%3A%22QUICK_MSECURITY_PAY%22%2C%22subject%22%3A%22App%E6%94%AF%E4%BB%98%E6%B5%8B%E8%AF%95Java%22%2C%22timeout_express%22%3A%2230m%22%2C%22total_amount%22%3A%220.01%22%7D&charset=utf-8&format=json&method=alipay.trade.app.pay&notify_url=%E5%95%86%E6%88%B7%E5%A4%96%E7%BD%91%E5%8F%AF%E4%BB%A5%E8%AE%BF%E9%97%AE%E7%9A%84%E5%BC%82%E6%AD%A5%E5%9C%B0%E5%9D%80&sign=ajseWOx0bi8GeWJyDE1wsP9Rybv%2FJoxriA6MzKglAsaSunlfEErhFqHl5xzxMJkIOVvTCX3pudDv2UJMYpFcGv1XeapAERpMyIEzdnYaZdOaNiKxevsFLgi0KkLxX5HprCVbWuLQDNWtbGSkxzU%2FpfY6BqNuhzUaWlIGemU9agfjKWIThrxHF7RrAkk5DTrDlRfOiandJvxpG23JZgaUyrUCXeQJz11knCP2RvyAcbPSnp%2FGAwk4u2rGxH9aEkYeXSooxTLDK5lMvE0epuxe2P4NJ4ZA7%2Bt40DM01x%2BEvvACS2Q7Qg%3D%3D&sign_type=RSA2&timestamp=2020-05-15+10%3A36%3A51&version=1.0'

这样就可以支付啦。

钉钉微应用调用支付宝JSAPI进行支付相关推荐

  1. Android和IOS 调用 支付宝和微信 支付方法

    Android和IOS 调用 支付宝和微信 支付方法 转载于:https://www.cnblogs.com/huangzineng/p/7235705.html

  2. h5调微信支付 unkonw url_h5移动端调用支付宝、微信支付的实现

    公司项目之前已有支付宝支付,现要求增加微信支付,第一次做,摸着石头过河!结果是满意的. 废话就不说了直接上代码: var aliChannel = null; var wxChannel = null ...

  3. java调用支付宝扫码支付接口

    说明: 由于没有商户账号,所以本文使用的是沙箱账号,本质跟真实账号是一样的,是支付宝为了方便开发人员开发调试而推出的策略.在真实开发中将商户公钥等修改为真实的商户即可. 支付基本流程 用户下单 商户账 ...

  4. APP调用支付宝客户端发起支付

    话不多说,直接上核心代码!!! 另附RSA密钥生成工具地址: https://docs.open.alipay.com/291/105971/ /*** 调用支付宝支付*/private PayRes ...

  5. java(服务器端)调用支付宝和微信支付功能

    之前发过这篇文章,但没有排版,今天重新整理了一下 最近项目上用到了调用微信和支付宝的第三方支付接口,因为以前没用过,所以这次用到了之后总结一下分享给大家,这里介绍两种支付方式,即app支付和扫码支付方 ...

  6. h5移动端 调用支付宝、微信支付

    公司项目之前已有支付宝支付,现要求增加微信支付,第一次做,摸着石头过河!结果是满意的. 废话就不说了直接上代码: var aliChannel = null; var wxChannel = null ...

  7. [go]沙盒环境下调用支付宝扫码支付

    参考于这篇博客,在此基础上进行了封装 配置支付宝开放平台 支付宝开放平台,使用支付宝扫码并成为开发者.然后进入沙盒进行测试 下载沙盒版支付宝并使用沙盒账号中的买家信息进行登陆,之后使用此账号登陆的支付 ...

  8. 实战:第八章:支付宝Native,JSAPI支付与微信Native,JSAPI,MWEB支付实现

    首先是H5的支付,先看控制层的代码 @AutowiredAliPayH5Bean aliPayH5Bean;@AutowiredWxPayH5MWEB wxPayH5MWEB;@AutowiredWx ...

  9. vue支付宝html,vue 解决在微信内置浏览器中调用支付宝支付的情况

    我的思路大概是这样的 1. 验证是否是在微信内置浏览器中调用支付宝 2.给支付页面的url加上调用接口所需的参数(因为在微信里是不能直接调用支付宝的需要调用外部浏览器) 3.在外部浏览器中完成支付跳转 ...

  10. 支付宝移动支付之IOSApp调用支付宝钱包

    最近客户提出要开发一个IOS上的app作为访问他们网站的途径之一,为什么说之一呢,因为目前PC和Mobile这两个站目前都已经上线了. 所以问题就简单了,我们只需要把mobile站UI修改一下,然后在 ...

最新文章

  1. ant 的 copy 使用
  2. ubuntu 下安装nodejs以及pm2
  3. python各个解释器的用途-python的解释器是什么?
  4. 只会python好找工作吗-前辈经历告诉你Python新手好找工作吗?初级岗位多不多
  5. recyclerview item动画_RecyclerView 的 Item 酷炫动画,效果加案例讲解!
  6. 看完就能知道渗透测试的技术结构
  7. 计算机管理中无法格式化,Win7电脑无法格式化怎样解决
  8. 网络登录_发布猫系统登录免费网络推广-绥芬河推广资讯
  9. java中new_浅析Java中的 new 关键字
  10. 数据结构-----双向链表笔记
  11. Word VBA中读取Excel表格中的数据
  12. 人体姿态识别代码深度解析,带你一步步理解代码
  13. jpg格式电脑怎么弄_电脑上图片改为jpg格式方法_照片怎么改为jpg格式-win7之家
  14. et中计算机的快捷键,et文件怎么打开,教您怎么打开et文件
  15. mysql 视图 algorithm_MySQL的视图讲解
  16. FreeRTOS的学习(二)——任务优先级问题
  17. Java面试手写编程题(面试官经常让人手写)
  18. 对话ACE第五期:到底什么才是真正的HTAP?
  19. mysql出现2错误代码_MySQL 错误代码大全(2)
  20. 使用Webcam完成拍照功能

热门文章

  1. 数字图像隐写术之卡方分布
  2. uni-app 小程序分享到朋友和朋友圈
  3. 英伟达服务器系统显卡驱动,NVIDIA显卡驱动
  4. 携手做大做强中国集成电路产业链
  5. 在c语言中temp的意思,temp
  6. 计算机网络pop3是什么意思,smtp服务器是什么 pop3服务器是什么?
  7. 4月27日—5月1日三年级课程
  8. SpringMVC整合百度富文本编辑器
  9. EasyUI下拉框自适应高度
  10. 数据字典在mysql中怎么做_如何编写数据字典