使用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 相关文章推荐
javascript字符串拼接的效率问题
Dec 25 Javascript
Jquery 一次处理多个ajax请求的代码
Sep 02 Javascript
JavaScript高级程序设计 事件学习笔记
Sep 10 Javascript
Google的跟踪代码 动态加载js代码方法应用
Nov 12 Javascript
jQuery移动和复制dom节点实用DOM操作案例
Dec 17 Javascript
Javascript 调用 ActionScript 的简单方法
Sep 22 Javascript
AngularJS入门教程之表单校验用法示例
Nov 02 Javascript
解析jQueryEasyUI的使用
Nov 22 Javascript
微信小程序movable view移动图片和双指缩放实例代码
Aug 08 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
Sep 26 Javascript
js实现左右轮播图
Jan 09 Javascript
12 种使用Vue 的最佳做法
Mar 30 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中的登陆login
2007/01/18 PHP
php 缓存函数代码
2008/08/27 PHP
php流量统计功能的实现代码
2012/09/29 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
九个你必须知道而且又很好用的php函数和特点
2013/08/08 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
2015/12/31 PHP
Smarty模板引擎缓存机制详解
2016/05/23 PHP
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
js 小贴士一星期合集
2010/04/07 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
js查找某元素中的所有图片地址的方法
2014/01/16 Javascript
JavaScript中对循环语句的优化技巧深入探讨
2014/06/06 Javascript
实例代码详解javascript实现窗口抖动及qq窗口抖动
2016/01/04 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
redux.js详解及基本使用
2019/05/24 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
Python守护进程用法实例分析
2015/06/04 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
2017/01/12 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
HTML5高仿微信聊天、微信聊天表情|对话框|编辑器功能
2018/04/23 HTML / CSS
Ajax的优点和缺点
2014/11/21 面试题
学校采购员岗位职责
2014/01/02 职场文书
秋季运动会表扬稿
2014/01/16 职场文书
宣传策划类求职信范文
2014/01/31 职场文书
《分一分》教学反思
2014/04/13 职场文书
销售团队激励口号
2014/06/06 职场文书
学习雷锋标语
2014/06/25 职场文书
人民调解协议书范本
2014/10/11 职场文书
2015新年寄语(一句话)
2014/12/08 职场文书
我的1919观后感
2015/06/03 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
2019消防宣传标语!
2019/07/10 职场文书