使用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 相关文章推荐
原生js实现数字字母混合验证码的简单实例
Dec 10 Javascript
一道JS前端闭包面试题解析
Dec 25 Javascript
javascript回到顶部特效
Jul 30 Javascript
Javascrip实现文字跳动特效
Nov 27 Javascript
AngularJs表单校验功能实例代码
Feb 09 Javascript
jquery鼠标悬停导航下划线滑出效果
Sep 29 jQuery
深入理解Vue 的钩子函数
Sep 05 Javascript
JS获取当前时间的实例代码(昨天、今天、明天)
Nov 13 Javascript
JS实现换肤功能的方法实例详解
Jan 30 Javascript
JS事件绑定的常用方式实例总结
Mar 02 Javascript
小程序中this.setData的使用和注意事项
Aug 28 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
Oct 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对图像的各种处理函数代码小结
2013/07/08 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
PHP执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
PHP常用设计模式之委托设计模式
2016/02/13 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
微信 getAccessToken方法详解及实例
2016/11/23 PHP
网页javascript精华代码集
2007/01/24 Javascript
javascript call方法使用说明
2010/01/11 Javascript
Javascript 倒计时源代码.(时.分.秒) 详细注释版
2011/05/09 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
node.js中的fs.readlink方法使用说明
2014/12/17 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
微信分享调用jssdk实例
2017/06/08 Javascript
js图片无缝滚动插件使用详解
2020/05/26 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
Pycharm Git 设置方法
2020/09/15 Python
澳大利亚领先的睡衣品牌:Peter Alexander
2016/08/16 全球购物
澳大利亚最大的护发和护肤品购物网站:RY
2019/12/26 全球购物
计算机网络毕业生自荐信
2013/10/01 职场文书
好的自荐信的要求
2013/10/30 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
美丽心灵观后感
2015/06/01 职场文书
网吧管理制度范本
2015/08/05 职场文书
大学班长竞选稿
2015/11/20 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
python标准库ElementTree处理xml
2022/05/20 Python