uni-app小程序端对接杉德支付

1.目前公司要求使用第三方支付来完成项目内支付功能,这边公司对接的是杉德的新收银台这个接口,刚开始配置东西很麻烦,只能一直看他的开放平台的文档和问公司拉到对接群里面杉德的人员,直接上流程

1.注册账号,激活账号(这个是我们经理弄得,里面要填写公司信息,我们一般不清楚让领导他们来弄)

2.激活账号后去杉德宝后台登陆,配置东西网址:杉德宝企业管理平台,根据他的提示下载那个插件,进入商家中心配置证书

3.获取到序列号和授权码后进入CFCA www.cfca.com.cn去进行下载证书,下载好的证书会存储在浏览器

如果浏览器没有下载控件的话,需要按照提示去进行下载控件,下载好之后再点击下载证书进入到下面的页面下载

下载好之后需要导出私钥和公钥

点击内容,选择证书

先导出公钥出来

这边需要手动输入文件名点击保存

私钥导出差不多就是多了一个私钥密码填写

导出来后去杉德宝后台进行配置

把公钥证书上传进去就可以了

IP地址一般配置问一下后端要配置那个的,我们这边配置的是宝塔的IP

配置成功后把生成的公钥,秘钥和杉德商户号都给后端,开始接口对接,
直接上代码



//处理好后的杉德支付请求接口
toPay(){
    let data={
	"orderCode":'wx25151615510', //商品订单号
	"totalAmount": this.sandAmount(0.01),//商品金额
	"subject": '测试', //商品标题	
	"body": '测试', //商品信息
	"userId": getApp().globalData.userOpenID,//用户openid
	"notifyUrl": HTTP_REQUEST_URL + "/api/sd/notify",//回调地址    
        }
    let sandData=this.sandData()
shanPay(sandData).then(
							res => {
								console.log("成功", res.data.json.data, res.data.json.data.head.respMsg)
								let heade = res.data.json.data.head
								if (heade.respMsg !== '成功') {
									uni.showToast({
										title: heade.respMsg
									})
								}
								let data = JSON.parse(res.data.json.data.body.credential)
								let jsConfig = JSON.parse(data.params)
								console.log("查看支付请求参数", jsConfig)

								uni.hideLoading();

								uni.requestPayment({
									// #ifdef MP
									timeStamp: jsConfig.timeStamp,
									nonceStr: jsConfig.nonceStr,
									package: jsConfig.package,
									signType: jsConfig.signType,
									paySign: jsConfig.paySign,
									// #endif
									// #ifdef APP-PLUS
									provider: 'wxpay',
									orderInfo: jsConfig,
									// #endif
									success: function(res) {
										// that.$set(that, 'userinfo.now_money', that.$util.$h.Add(value, that.userinfo.now_money));
										return that.$util.Tips({
											title: '支付成功',
											icon: 'success'
										}, {
											tab: 5,
											url: '/pages/iot/mycard'
										});
									},
									fail: function(res) {
										console.log("用户取消", res)
										return that.$util.Tips({
											title: '取消支付' + res.errMsg
										});
									},
									complete: function(res) {
										if (res.errMsg == 'requestPayment:cancel') return that
											.$util.Tips({
												title: '取消支付'
											});
									}
								})
							}).catch(err => {
							console.log("错误🚀", err)
							uni.showToast({
								title: err
							})

						})
}

	/**杉德支付参数处理*/
	sandData(res){
		console.log(res, "获取当前订单数据")
		let sandData = {
			"orderCode": res.orderCode, //杉德支付订单号
			"totalAmount": res.totalAmount + "", //支付金额 需要处理
			"subject": res.subject, //商品标题
			"body": res.body,//商品信息
			"payMode": "sand_wx", //杉德支付
			"payExtra": {
				"subAppid": "wx5b88**********", //小程序appid
				"userId": res.userId,
			},
			"clientIp": "127.0.0.1", //用户的IP地址
			"txnTimeOut": this.formatDate(), //订单截止时间
			"notifyUrl": res.notifyUrl,//回调地址
			"frontUrl": "",
			"extend": ""
		}
		return sandData
	}
	/**杉德支付金额转换*/
	sandAmount(numBer){
		let result = (numBer / 1000000000).toFixed(11).replace(".", "").padStart(11, "0");
		return result
	}
	/**处理杉德支付截止时间*/
	formatDate() {
	var date = new Date();
	date.setMinutes(date.getMinutes() + 30);
	  var year = date.getFullYear();
	  var month = ("0" + (date.getMonth() + 1)).slice(-2);
	  var day = ("0" + date.getDate()).slice(-2);
	  var hours = ("0" + date.getHours()).slice(-2);
	  var minutes = ("0" + date.getMinutes()).slice(-2);
	  var seconds = ("0" + date.getSeconds()).slice(-2);
	  return year + month + day + hours + minutes + seconds;
	}

可以调起微信支付就成功了,小白记录一下对接杉德支付,有了解的大佬欢迎给点修改建议,不胜感激

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Uni-app 是一款能够开发多个终的跨平台框架,包括小程序、H5、App 等,可以在同一个代码库中开发出具有不同功能的应用。而 Uni-app 小程序源码就是使用 Uni-app 开发的小程序的代码。 Uni-app 小程序源码具有以下优势: 1. 高效开发:借助 Uni-app 的跨平台开发框架,Uni-app 小程序源码可以快速开发出具有高质量和高性能的小程序。 2. 多平台统一:Uni-app 小程序源码可以快速发布到多个平台的小程序环境中,如微信小程序支付小程序、百度小程序等。 3. 组件库完整:Uni-app 小程序源码提供了完整的组件库和工具库,开发者可以快速开发出小程序。 4. 商业支持:Uni-app 小程序源码由腾讯公司开发,具有较强的商业支持,可以解决开发者在开发过程中的各种问题。 总的来说,Uni-app 小程序源码是一种高效、跨平台的小程序开发方式,可以大大节省开发者的时间和精力。同时,也为多个终用户提供了更加方便和高效的小程序服务。 ### 回答2: Uni-app是一个跨平台开发框架,支持将一个代码库编译成多个平台的应用程序,其中包括iOS、Android、H5、微信小程序等。而Uni-app小程序源码是指使用Uni-app框架开发出来的小程序代码,通过该源码可以进行二次开发,解析出小程序的各个功能和页面,进行定制化开发,满足不同业务场景的需求。 使用Uni-app小程序源码可以快速实现小程序的开发,不仅减少了代码的编写量,同时也兼容了多个平台,方便用户在不同设备上使用该应用。同时,Uni-app小程序源码的可维护性也很高,因为只需要在一个代码库中进行修改和维护,而不需要针对每个平台单独编写代码。 在使用Uni-app小程序源码时,需要先进行环境搭建,安装相关的开发工具和依赖库,然后即可进行开发。源码中包含了小程序的各个功能和页面,开发者可以根据自己的需求进行修改和扩展,同时也可以使用Uni-app提供的组件和API完成自己的开发任务。 需要注意的是,在进行Uni-app小程序源码开发时,需要熟悉Vue.js框架的相关知识,因为Uni-app是基于Vue.js的框架进行开发的。同时,还需要了解小程序开发的相关知识,包括小程序的生命周期、路由、组件等。掌握这些知识后,才能够更好地利用Uni-app小程序源码进行开发,实现优秀的小程序应用。 ### 回答3: uni-app 小程序源码是指在 uni-app 开发框架下开发的小程序代码。uni-app 是一个多开发框架,可以让开发者使用一套代码同时开发出跨 iOS、Android、H5 等多个平台的应用程序。在这个框架下,我们可以通过 Vue.js 开发小程序,并且使用 uni-app 提供的开发工具来进行调试和编译。 uni-app 具有许多优点,如跨平台、快速开发、高效编译等,其提供了丰富的组件和插件,让开发者可以轻松地在小程序上实现各种功能。开发者只需要按照 Vue.js 的组件开发方式去编写小程序代码,就可以实现复杂的应用逻辑。 uni-app 小程序源码的开发需要一定的技术积累和编程经验,同时还需要对互联网技术有一定的了解。一般来说,开发者需要掌握 Vue.js 基础、小程序开发技能等,才能开发出可靠、高效的 uni-app 小程序源码。 总之,uni-app 小程序源码是一个非常有价值的开发项目,可以帮助更多的开发者快速实现小程序应用功能,同时也可以提高开发效率,降低开发成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值