uni-app 调用支付宝支付

本文讲解  uni-app如何调用支付宝进行支付,服务端为 .net编写。php

客户端:uni-app 编写  一、根据服务端生成的订单信息发起支付。json

服务端:.net 编写 一、生成订单信息。二、接收支付宝异步反馈支付信息。api

 

先说重点  uni-app 不支持支付宝沙箱测试!不支持支付宝沙箱测试!!不支持支付宝沙箱测试!!!(重要的事情说三遍,为此我浪费了半天。上线应用没签约支付又浪费了半天)。app

客户端很简单 一句代码搞定:  参考官方文档:https://uniapp.dcloud.io/api/plugins/payment?id=requestpayment (5+App 支付)异步

 

AliPay: function() { uni.requestPayment({ provider: 'alipay', orderInfo:'服务端生成的支付订单信息', success: function(res) { console.log('success:' + JSON.stringify(res)); }, fail: function(err) { console.log('fail:' + JSON.stringify(err)); } }); },
View Code

 

服务端编写代码以前,须要去支付宝进行app应用建立。详细流程:https://docs.open.alipay.com/204/105297/ide

注 :建立后的应用是不能用于真实环境测试的,必须申请应用上线(审核比较容易)。而且签约支付功能,签约!签约!!签约!!!(没签约的能够用沙箱环境测试生成的订单信息)工具

 

三个密钥: 商户应用私钥(本身保存生成订单用)、商户应用公钥(上传到支付宝应用,用来生成支付宝公钥)、支付宝公钥(根据商户应用公钥自动生成,生成订单用到)。测试

建立应用后spa

  一、设置密钥 工具下载地址:https://docs.open.alipay.com/291/105971  私钥保存到本地,公钥填写到支付宝应用,获得支付宝公钥。.net

 

 

 从上面的图 咱们能够知道,咱们只须要的两个东西:一、APPID、二、支付宝公钥(根据用户上传的公钥自动生成)(网关是固定的,真实环境:https://openapi.alipay.com/gateway.do。沙箱环境:https://openapi.alipaydev.com/gateway.do。 有区别!)。

作完上面,咱们就能够下载对应的SDK了。下载地址:https://docs.open.alipay.com/54/106370/。 上面有详细的使用说明。多看几遍。

我用的是 .net,我新建了一个WebService项目,把上面的SDK 应用到项目就行了。

 代码:

private string RSA2 = "RSA2"; private string CHARSET = "utf-8"; private string URL = "https://openapi.alipaydev.com/gateway.do"; // 这个是沙箱环境的网关,真实环境须要改一下 private string APPID = ""; private string APP_PRIVATE_KEY = "私钥字符串拷过来"; private string ALIPAY_PUBLIC_KEY = "z支付宝公钥拷贝过来"; [WebMethod(Description = "获取订单信息")] public string getAliPayOrderInfo() { IAopClient client = new DefaultAopClient(URL, APPID, APP_PRIVATE_KEY, "json", "1.0", RSA2, ALIPAY_PUBLIC_KEY, CHARSET, false); AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); model.Body = "我是测试数据"; model.Subject = "App支付测试DoNet"; model.TotalAmount = "0.01"; model.ProductCode = "QUICK_MSECURITY_PAY"; model.OutTradeNo = "20170216555555555555555501"; model.TimeoutExpress = "30m"; AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); request.SetBizModel(model); AlipayTradeAppPayResponse response = client.SdkExecute(request); return response.Body; }
View Code

运行结果以下图,直接拷贝到客户端的代码里就能够了。

 正式上线的App 而且已经签约了支付功能,能够运行。若是是沙箱环境,则会报错  “[payment支付宝:62009]未知错误”。

 

支付宝提供了调试工具用来验证上面的订单信息。工具下载地址:https://openclub.alipay.com/read.php?tid=7695

选择沙箱环境,把上面生成的订单信息考本到文本框,点击“点我去支付”,能够唤起支付页面而不报错,就说明在服务端的请求参数没有问题。

相关文章
相关标签/搜索