使用PBFunc在Powerbuilder中支付宝当面付款功能


Posted in Javascript onOctober 01, 2016

在PB实现支付宝当面付的功能,需要先在支付宝进行商户签约,并设置相关的公钥信息(具体参考支付宝文档)。

然后使用对应的私钥文件对参数进RSAWithSha1前面计算。具体代码如下:

string ls_pubFileName,ls_priFileName
n_pbfunc_cryp lnv_cryp
ls_priFileName ="D:\pbfunclib_pri.pem"//私钥文件
string ls_str
string ls_appId,ls_secret,ls_biz_content
ls_appId ="3434343"//改成你的appid
ls_biz_content='{"out_trade_no": "2015020011","scene": "bar_code","auth_code": "'+sle_1.Text+'","subject": "当面付条码支付","total_amount": "0.01"}'
ls_str ="app_id="+ls_appId
ls_str +='&biz_content='+ls_biz_content
ls_str +='&charset=utf-8'
ls_str +='&method=alipay.trade.pay'
ls_str +='&sign_type=RSA'
ls_str +='×tamp=2016-05-08 11:27:15'
ls_str +='&version=1.0'
string ls_sigStr
blob utf8R
utf8R =lnv_cryp.of_str2utf8(ls_str)
if lnv_cryp.of_sha1withRsa(ls_priFileName,utf8R,lnv_cryp.HASH_RESULT_DEFAULT,ls_sigStr) then
  MessageBox("提示","签名成功:"+ls_sigStr)
Else
  MessageBox("提示","签名失败")
end if
/*验证签名可以不需要调用*/
ls_pubFileName ="D:\pbfunclib_pub.pem"//在D盘生成公钥文件pbfunclib_pub.pem
IF Not lnv_cryp.of_RSAVerifyFileSHA1(ls_pubFileName,utf8R,ls_sigStr,lnv_cryp.HASH_RESULT_DEFAULT) Then
  MessageBox("提示","验证签名失败")
else
  messagebox("","验证签名成功")
End IF
//ls_str +=''
n_pbfunc_http lnv_http
lnv_http.of_clear()//清空参数
string ls_data
ls_data = "app_id="+wf_alipay_urlencode(ls_appId)
ls_data += "&biz_content="+wf_alipay_urlencode(ls_biz_content)
ls_data += "&charset="+wf_alipay_urlencode("utf-8")
ls_data += "&method="+wf_alipay_urlencode("alipay.trade.pay")
ls_data += "&sign_type="+wf_alipay_urlencode("RSA")
ls_data += "&sign="+wf_alipay_urlencode(ls_sigStr)
ls_data += "×tamp="+wf_alipay_urlencode("2016-05-08 11:27:15")
ls_data += "&version="+wf_alipay_urlencode("1.0")
lnv_http.of_set_URL("https://openapi.alipay.com/gateway.do?"+ls_data)
Blob lblb_data
string ls_error
IF lnv_http.of_post(lblb_data,ls_error) Then
  string gbkData
  gbkData = lnv_cryp.of_utf8ToGbk(lblb_data)//由于返回来的是utf-8编码,直接显示会乱码
  MessageBox("提示",gbkData+" "+string(lblb_data))
Else
  MessageBox("提示","执行失败")
End IF

其中wf_alipay_urlencode函数代码如下:

//ls_str为参数
n_pbfunc_encode lnv_encode
string ls_content,ls_reserved//指明不需要编码的字符
ls_reserved =""//都需要编码
string ls_sigStr
blob utf8R
utf8R =lnv_encode.of_str2utf8(ls_str)
lnv_encode.of_URIEncode2(utf8R,ls_content)
return ls_content

以上所述是小编给大家介绍的使用PBFunc在Powerbuilder中支付宝当面付款功能,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复的。

Javascript 相关文章推荐
把html页面的部分内容保存成新的html文件的jquery代码
Nov 12 Javascript
Webkit的跨域安全问题说明
Sep 13 Javascript
页面调用单个swf文件,嵌套出多个方法。
Nov 21 Javascript
解决js正则匹配换行问题实现代码
Dec 10 Javascript
用js来刷新当前页面保留参数的具体实现
Dec 23 Javascript
使用js复制链接中的部分文字的方法
Jul 30 Javascript
javascript的几种继承方法介绍
Mar 22 Javascript
什么是JavaScript注入攻击?
Sep 14 Javascript
js print打印网页指定区域内容的简单实例
Nov 01 Javascript
jQuery实现表格与ckeckbox的全选与单选功能
Nov 24 Javascript
详解js中==与===的区别
Jan 08 Javascript
JS温故而知新之变量提升和时间死区
Jan 27 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
Oct 01 #Javascript
javascript代码调试之console.log 用法图文详解
Sep 30 #Javascript
JS实现表单多文件上传样式美化支持选中文件后删除相关项
Sep 30 #Javascript
微信小程序 Audio API详解及实例代码
Sep 30 #Javascript
微信小程序 Record API详解及实例代码
Sep 30 #Javascript
微信小程序 Image API实例详解
Sep 30 #Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 #Javascript
You might like
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
PHP 类与构造函数解析
2017/02/06 PHP
PHP从尾到头打印链表实例讲解
2018/09/27 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
2019/05/09 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
Jquery 点击按钮显示和隐藏层的代码
2011/07/25 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
jQuery+ajax简单实现文件上传的方法
2016/06/03 Javascript
Js调用Java方法并互相传参的简单实例
2016/08/11 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
vue实现验证码输入框组件
2017/12/14 Javascript
react-redux中connect的装饰器用法@connect详解
2018/01/13 Javascript
npm全局环境变量配置详解
2020/12/15 Javascript
从零学python系列之新版本导入httplib模块报ImportError解决方案
2014/05/23 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
python+rsync精确同步指定格式文件
2019/08/29 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
python里反向传播算法详解
2020/11/22 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
毕业设计指导教师评语
2014/12/30 职场文书
学雷锋倡议书
2015/01/19 职场文书
导游带团欢迎词
2015/09/30 职场文书
javascript之Object.assign()的痛点分析
2022/03/03 Javascript
使用Python获取字典键对应值的方法
2022/04/26 Python